享元概念
享元模式是指“运用共享技术有效地支持大量细粒度的对象。”
我们可以理解为:当细粒度对象的数量特别多时运行的代价相当高,此时运用共享技术可大大降低运行的成本。
享元结构
(1)单纯享元模式结构
特点:全部享元对象均可共享
元素:
- 抽象享元角色:java中用抽象类和接口担当该角色,为具体的享元角色规定了必须实现的方法,而外蕴状态就是以参数的形式通过此方法传入。
- 具体享元角色:实现抽象享元角色规定的方法。 (如果存在内蕴状态,就负责为内蕴状态提供存储控件)。
- 享元工厂角色:负责创建和管理具体享元角色,该角色实现是达到共享的关键(可用hashmap 和hashtable做为files)。
- 客户端角色 :维护所有享元对象的引用,而且还需要存储对应的外蕴状态。
(2)复合享元模式结构(多享元模式)
特点:此模式运用单纯享元,结合合成模式加以复合
元素:
- 抽象享元角色:是所有的具体享元类的超类。
- 具体享元角色:实现抽象享元角色规定的接口。
- 复合享元 :它代表的对象是不可共享的,但一个符合享元对象可以分解成为多个本身是单纯享元对象的组合。
- 享元工厂角色:负责创建和管理具体享元角色。
- 客户端角色 :本角色要自行存储所有享元对象的外蕴状态。
单纯享元代码实现
eclipse目录结构:
由于工作的缘故今天时间不够了,下次把 复合享元模式结构 的代码整理下给大家发出来共同探讨!!!!