第十二章:享元模式
一、基本概念
1)享元模式(Flyweight Pattern),也叫蝇量模式:使用共享技术有效的支持大量细粒度对象
2)常用于系统底层开发,解决系统的性能问题。例如:数据库连接池,字符串常量池,缓冲池等。
3)享元模式能够解决重复对象内存浪费问题。当需要相似对象时,不需要新建对象,而是从缓冲池中取。
二、原理类图
- Flyweight 是抽象的享元角色,同时定义出对象的外部状态和内部状态
- ConcreteFlyweight 是具体的享元角色
- UnsharedConcreteFlyweight 是不可共享的角色,一般不会出现在享元工厂
- FlyweightFactory 享元工厂,里面有一个容器存放享元对象,提供了获取享元对象的方法
三、特别注意
1)享元模式提出了两个要求:细粒度和共享对象
2)内部状态:存储在享元对象内部且不会随着环境的改变而改变
3)外部状态:随环境动态改变而不可共享的状态,所以享元对象的外部状态肯定是定义在对象的外部,当要使用享元对象时在动态传入
四、享元例子
不想举例了,因为很简单