(22)享元模式
定义:使用共享对象可有效地支持大量的细拉度的对象。
类型:结构型模式
类图:
门面模式结构:
l 抽象享元角色(Flyweight):此角色是所有的具体享元类的超类,为这些类规定出需要实现的公共接口或抽象类。那些需要外部状态(External State)的操作可以通过方法的参数传入。抽象享元的接口使得享元变得可能,但是并不强制子类实行共享,因此并非所有的...
分类:
其他好文 时间:
2015-06-21 09:20:19
阅读次数:
117
1、Schema定义轻量级(Flyweight Pattern):使用共享来支持大量细粒度的对象重用。仅使用一个小数目的对象系统。这些对象是非常相似。状态变化非常小,对象可以多次重复使用。由于享元模式要求可共享的对象必须是细粒度的对象,称为轻量级模式,它是一种对象结构型模式。2、模式结构享元模式包括...
分类:
其他好文 时间:
2015-06-19 22:55:34
阅读次数:
113
享元模式是结构型模式的一种,其主要思想是运用共享技术支持大量的细粒度对象。 如GOF中提供的例子,文本编辑器中的文字在排版时如果将每个字符看做一个对象,那么一篇不长的文章中也可能包含大量的细粒度对象,占用资源,产生大量的运行时开销。 Flyweight模式解决了这个问题,它通过将字符的内在特...
分类:
其他好文 时间:
2015-06-17 10:53:57
阅读次数:
124
模式动机(Flyweight Pattern):顾名思义,享元模式就是运用共享技术解决大量细粒度对象的复用问题。在享元模式中,由工厂负责维护一个享元池(Flyweight Pool),用于存储具有相同内部状态的一些对象。所谓内部状态,是指一个对象的特征,我们把大多数该类对象的不变特征确定为共享特征,...
分类:
其他好文 时间:
2015-06-05 12:06:59
阅读次数:
133
1.意图运用共享技术有效地支持大量细粒度的对象。2.别名无3.动机有些应用程序得意于在其整个设计过程中采用对象技术,但简单化的实现代价极大。如我们在使用word的时候,如果设置正文字体为:text.setFont(new Font(“細明體”, Style.BOLD, 12));每一个文字我们都需要这样设置,内存太大,而且也非常难记,稍有不注意就会出错。所以通常并不是对每个字符都用一个单独的对象去表...
分类:
其他好文 时间:
2015-06-03 09:44:58
阅读次数:
164
网站共享代码示例:1.Flyweight: public abstract class WebSite { public abstract void Use(); }2.ConcreteeFlyweight: public class Concrete...
分类:
其他好文 时间:
2015-06-02 17:09:20
阅读次数:
156
【1】什么是享元模式?享元模式:【2】享元模式的代码示例:#include #include #include using namespace std;class Flyweight{public: virtual void operation(int) = 0;};class Concret...
分类:
其他好文 时间:
2015-05-27 22:39:27
阅读次数:
217
享元模式(flyweight):运用共享技术有效地支持大量细粒度的对象。
享元模式可以避免大量非常相似类的开销。在程序设计中,有时需要生成大量细粒度的类实例来表示数据。如果能发现这些实例除了几个参数外基本上都是相同的,有时就能够受大幅度地减少需要实例化的类的数量。如果能把那些参数移到类实例的外面,在方法调用时将它们传过来,就可以通过共享大幅度地减少单个实例的数目。
使用场景:如果一个应用程序使...
分类:
编程语言 时间:
2015-05-18 14:50:30
阅读次数:
159
在阎宏博士的《JAVA与模式》一书中开头是这样描述享元(Flyweight)模式的: Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。Java....
分类:
编程语言 时间:
2015-05-13 19:18:29
阅读次数:
224
Flyweight定义:避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类)。
为什么使用共享模式/享元模式
面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可能显得很庞大,比如,字处理软件,如果以每个文字都作为一个对象,几千个字,对象数就是几千,无疑耗费内存,那么我们还是要"求同存异",找出这些对象群的共同点,设计一个元类,封装可以被共享的类,另外,还...
分类:
编程语言 时间:
2015-05-13 10:41:10
阅读次数:
150