• [Design] Flyweight Pattern


      结构模式 

      结构模式描述如何将类或者类的对象结合在一起形成更大的结构。
      结构模式描述两种不同的东西:类与类的实例。结构模式可以分为:类的结构模式和对象的结构模式两种。
      类的结构模式:类的结构模式使用继承来把类、接口等组合在一起,以形成更大的结构。类的结构模式是静态的,比如类形式的适配器模式。
      对象的结构模式:对象的结构模式描述怎么样把不同类型的对象组合在一起,以实现新的功能的方法。对象的结构模式是动态的。比如代理人模式。

    --------------------------------------------------------------------------------------


    享元(Flyweight)模式

      享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。根据享元对象的内部表象,享元模式可以分成单纯享元模式和复合享元模式两种形 式。享元对象不一定非要是不变对象。一个享元对象之所以能够共享,是因为它只含有可以共享的状态,而没有不可以共享的状态,这是应用享元模式的前提。享元 工厂实际上提供了一个缓存机制,判断对象是否存在然后创建或直接返回对象。

    优缺点

    使用享元模式可以大幅度降低内存中对象的数量。但是为了可以享元,需要将一些状态外部化, 这使得程序逻辑变的复杂,而且读取外部状态使得运行时间稍微变长。


    单纯享元模式结构


    1.    抽象享元角色

    所有具体享元角色的基类。

    2.    具体享元角色

    实现抽象享元角色所规定的接口。如果有内蕴状态的话,必须为内蕴状态提供存储空间。内蕴状态必须与对象所处的周围环境无关,从而使得享元对象可以在系统内共享。

    3.    享元工厂角色

    负责创建和管理享元角色。保证享元对象可以被适当的共享,检查系统中是否有复合要求的对象。如果要直接近回,否则创建并返回。

    4.    客户端角色

    本角色需要维护一个对所有享元对象的引用,自行存储所有享元对象的外蕴状态。

    复合享元模式结构


    1.    抽象享元角色

    所有具体享元角色的基类。

    2.    具体享元角色

    实现抽象享元角色所规定的接口。如果有内蕴状态的话,必须为内蕴状态提供存储空间。内蕴状态必须与对象所处的周围环境无关,从而使得享元对象可以在系统内共享。又称单纯具体享元角色。

    3.    复合享元角色

    此角色所代表的对象是不可以共享的,但可分解成多个本身可以共享的单纯享元对象。又称不可共享的享元对象。

    4.    享元工厂角色

    负责创建和管理享元角色。保证享元对象可以被适当的共享,检查系统中是否有复合要求的对象。如果要直接近回,否则创建并返回。

    5.    客户端角色

    本角色需要自行存储所有享元对象的外蕴状态。


  • 相关阅读:
    430flash的操作
    430单片机之定时器A功能的大致介绍
    MSP430看门狗
    430之通用异步串口通信模块
    430的启动,I/O中断
    Msp430概述
    烦躁
    12864密码锁
    单片机的动手实践篇--51单片机玩转12864
    【CSS】font样式简写(转)- 不是很建议简写
  • 原文地址:https://www.cnblogs.com/abeen/p/1437651.html
Copyright © 2020-2023  润新知