首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

纯正享元模式

2012-09-05 
单纯享元模式享元模式以共享的方式高效的支持大量的细粒度对象享元对象能做到共享的关键是区分内蕴状态(In

单纯享元模式

享元模式以共享的方式高效的支持大量的细粒度对象

享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State)

一个内蕴状态是存储在享元对象内部的,并且是不会随着环境改变而有所不同

一个外蕴状态是随环境改变而改变的、不可以共享的状态。享元对象的外蕴状态必须由客户端保存,并在享元对象被创建之后,在需要使用的时候再传入享元对象内部

外蕴状态不可以影响享元对象的内蕴状态,他们是相互独立的

?

?

?

public class Client {    public static void main(String[] args) {        // 创建享元工厂对象        FlyweightFactory factory = FlyweightFactory.getInstance();        // 向享元工厂对象请求一个内蕴状态为'a'的享元对象        Flyweight fly = factory.factory(new Character('a'));        // 传入一个外蕴状态        fly.operation("First Call");        // 向享元工厂对象请求一个内蕴状态为 'b'的享元对象        fly = factory.factory(new Character('b'));        // 传入一个外蕴状态        fly.operation("Second Call");        // 向享元工厂对象请求一个内蕴状态为'a'的享元对象        fly = factory.factory(new Character('a'));        // 传入一个外蕴状态        fly.operation("Thrid Call");                // 向享元工厂对象请求一个内蕴状态为'c'的享元对象        fly = factory.factory(new Character('c'));        // 传入一个外蕴状态        fly.operation("Fourth Call");        // 查看享元工厂        factory.checkFlyweight();    }}

?

?

?

热点排行