# 享元模式

享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式

它的主要意图是运用共享技术有效地支持大量细粒度的对象

在享元模式中可以共享的相同内容称为内部状态(Intrinsic State),而那些需要外部环境来设置的不能共享的内容称为外部状态(Extrinsic State), 其中外部状态和内部状态是相互独立的,外部状态的变化不会引起内部状态的变化,通过共享不变的部分,达到减少对象数量并节约内存的目的。

在享元模式中通常会出现工厂模式,需要创建一个享元工厂来负责维护一个享元池(Flyweight Pool)(用于存储具有相同内部状态的享元对象)。

实际开发中,JAVA中的String的常量池(池技术),数据库连接池都是享元模式


参考文档

Last Updated: 3 years ago