定义
享元模式(Flyweight Pattern)又称为轻量级模式,是对象池的一种实现。类似于线程池,线程池可以避免不停的创建和销毁多个对象,消耗性能。提供了减少对象数量从而改善应用所需的对象结构的方式。
宗旨:共享细粒度对象,将多个对同一对象的访问集中起来。
属于结构型模式。
适用场景
- 常常应用于系统底层的开发,以便解决系统的性能问题。
- 系统有大量相似对象、需要缓冲池的场景。
举例
- pool,cache
- JDK中的String,Integer,Long
优点
- 减少对象的创建,降低内存中对象的数量,降低系统的内存,提高效率。
- 减少内存之外的其他资源占用。
缺点
- 关注内、外部状态、关注线程安全问题。
- 使系统、程序的逻辑复杂化。
享元模式和单例模式
享元模式一般配合工厂模式使用,享元工厂一般使用单例模式