享元模式(轻量级模式): Flyweight、结构型模式
享元模式是对象池的一种实现,类似线程池,可以避免不停的创建和销毁对象,降低内存的消耗。
享元模式核心在于 缓存共享对象,降低内存消耗
享元模式应用场景
1、常用于系统底层开发,解决系统性能问题
2、系统有大量相似对象,需要缓冲池的场景
ps:享元模式其实就是工厂模式的改进机制,增加了缓存这一功能。
享元模式的优缺点
优点:
1、减少对象的创建,降低内存中对象的数量
2、降低系统的内存,提升系统效率
缺点:
1、关注内部状态、外部状态、关注线程安全问题
享元模式源码应用
1、JDK String 常量池
2、JDK Integer (-128到127) 进行享元
3、Apache Commons Pool 实现对象池功能
ps:享元模式 通过内部状态、外部状态 来实现享元
(内部状态不会随环境的改变而改变;外部状态是对象依赖的一个标记,是随环境改变而改变的)