理解名称
享元模式(Flyweight Design Pattern)是一种结构型模式。所谓“享元”,顾名思义就是被共享的单元。
作用
当一个系统中存在大量重复对象的时候,利用享元模式,将对象设计成享元,在内存中只保留一份实例,供多处代码引用,这样可以减少内存中对象的数量,以起到节省内存的目的。
适用场景
当一个系统中存在大量重复对象的时候。
享元模式VS单例模式VS缓存VS池化技术
- 应用单例模式是为了保证对象全局唯一
- 应用享元模式是为了实现对象复用,节省内存。
- 缓存是为了提高访问效率,而非复用。
- 池化技术中的“复用”理解为“重复使用”,主要是为了节省时间。
代码示例
详见JDK Integer实现
业界经典实现
- JDK Integer,String