# 享元模式
享元模式(Flyweight Pattern
)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式。
它的主要意图是运用共享技术有效地支持大量细粒度的对象。
在享元模式中可以共享的相同内容称为内部状态(Intrinsic State),而那些需要外部环境来设置的不能共享的内容称为外部状态(Extrinsic State), 其中外部状态和内部状态是相互独立的,外部状态的变化不会引起内部状态的变化,通过共享不变的部分,达到减少对象数量并节约内存的目的。
在享元模式中通常会出现工厂模式,需要创建一个享元工厂来负责维护一个享元池(Flyweight Pool)(用于存储具有相同内部状态的享元对象)。
实际开发中,JAVA
中的String
的常量池(池技术),数据库连接池都是享元模式。
参考文档
← Facade (门面模式) 代理模式 →