你的位置:首页 > 软件开发 > ASP.net > Flyweight(享元)

Flyweight(享元)

发布时间:2016-06-11 16:00:03
1.意图 运用共享技术有效地支持大量细粒度的对象。2.动机 Flyweight模式描述了如何共享对象,使得可以细粒度地使用它们,而无需高昂的代价。flyweight是一个共享对象,它可以同时在多个场景(context)中使用,并且在每个场景中flywe ...

1.意图

    运用共享技术有效地支持大量细粒度的对象。

2.动机

    Flyweight模式描述了如何共享对象,使得可以细粒度地使用它们,而无需高昂的代价。flyweight是一个共享对象,它可以同时在多个场景(context)中使用,并且在每个场景中flyweight都可以作为一个独立的对象---这一点与非共享对象的实例没有区别。

3.适用性

  • 一个应用程序使用了大量的对象。
  • 完全由于使用大量的对象,造成很大的存储开销。
  • 对象的大多数状态都可变为外部状态。
  • 如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象。
  • 应用程序不依赖于对象标识。由于Flyweight对象可以被共享,对于概念上明显有别的对象,标识测试将返回真值。

4.结构图

    Flyweight(享元)

 

5.代码实例

    

//Flyweight.h#include <get='_blank'>string>class FlweightGraphicBase{public:  virtual void PrintColor()=0;protected:  std::string m_Color;};class FlweightWhiteGraphic : public FlweightGraphicBase{public:  FlweightWhiteGraphic();  void PrintColor();};class FlweightBlackGraphic : public FlweightGraphicBase{public:  FlweightBlackGraphic();  void PrintColor();};

原标题:Flyweight(享元)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录