设计模式之享元模式

1、定义

享元(Flyweight)模式的定义:运用共享技术来有効地支持大量细粒度对象的复用。它通过共享已经存在的又橡来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。

2、角色划分

2.1享元接口(角色一)

是所有的具体享元类的基类,为具体享元规范需要实现的公共接口,非享元的外部状态以参数的形式通过方法传入。

2.2具体享元对象(角色二)

实现抽象享元角色中所规定的接口。

2.3享元工厂(角色三)

负责创建和管理享元角色。当客户对象请求一个享元对象时,享元工厂检査系统中是否存在符合要求的享元对象,如果存在则提供给客户;如果不存在的话,则创建一个新的享元对象。

3、UML关系图

image.png

4、优点

相同对象只要保存一份,这降低了系统中对象的数量,从而降低了系统中细粒度对象给内存带来的压力。

5、缺点

5.1、为了使对象可以共享,需要将一些不能共享的状态外部化,这将增加程序的复杂性。
5.2、读取享元模式的外部状态会使得运行时间稍微变长。

6、代码实现

你可能感兴趣的:(设计模式之享元模式)