前言
什么是享元模式?
在GOF的《设计模式:可复用面向对象软件的基础》一书中对享元模式是这样说的:运用共享技术有效地支持大量细粒度的对象。
UML类图
Flyweight:描述一个接口,通过这个接口flyweight可以接受并作用于外部状态;
UnsharedConcreteFlyweight:并非所有的Flyweight子类都需要被共享。Flyweight接口使共享成为可能,但它并不强制共享。
Client:维持一个对flyweight的引用;同时,它需要计算或存储flyweight的外部状态。
实现要点
享元模式的工厂类维护了一个实例列表,这个列表中保存了所有的共享实例;当用户从享元模式的工厂类请求共享对象时,首先查询这个实例表,如果不存在对应实例,则创建一个;如果存在,则直接返回对应的实例。
代码实现
#include#include
