今天看了板桥里人的《设计模式之Flyweight(享元) FlyWeight模式
》一文,发现其中的理解有些偏差,因此在这里谈一谈自己的看法。
Flyweight的目的是为了减少内存的消耗而出现的一种模式。因此他是一种解决实现问题的模式,而不是用来解决建模问题的。
在文章的例子中说class CD是接口 Flyweight,而class Artist是ConcreteFlyweight。那就完全错了。
按照Flyweight模式,Flyweight和ConcreteFlyweight是继承关系。
而文中却成了聚合关系。
Flyweight模式中,最重要的是将对象分解成extrinsic和intrinsic两部分
在Flyweight Interface中,应该是和context有关的操作,而在例子中,看不到任何和context有关的操作。
可
见作者是将flyweight模式和object pool等同起来了。但实际上两者是由本质区别的。object
pool中的对象并没有extrinsic,也不知道context的存在。比如最常见的string
pool。pool中的string可以用在任何地方。
希望板桥里人先生本着对读者负责的精神,能够修改上文。
以上。
[该贴被oxygen于2007年05月28日 19:40修改过]
Flyweight是为解决包含相同信息多个实例反复创建的性能开销,是一个提高性能的模式,常见EJB等J2EE中使用的Object Cache和Object Pool都属于这种Flyweight具体应用表现。
相关推荐
设计模式 Flyweight
软件模式之Flyweight模式.docx
6共享元模式(Flyweight) 用意:以共享的方式高效地支持大量的细粒度对象
软件模式之Flyweight模式.doc
23种设计模式之十(结构型模式)Flyweight模式
NULL 博文链接:https://wy649898543.iteye.com/blog/1436293
设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx
设计模式(C#)之享元模式(Flyweight Pattern),运用共享技术有效地支持大量细粒度的对象。
java设计模式之Flyweight文.pdf
主要为大家详细介绍了C++设计模式之享元模式Flyweight,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
设计模式中的Flyweight模式,VC源码Flyweight.rar,希望我能把23个模式写全,O(∩_∩)O~
java设计模式之Flyweight[归纳].pdf
享元模式英文称为“Flyweight Pattern”,我非常感谢将Flyweight Pattern翻译成享元模式的那位强人,因为这个词将这个模式使用的方式明白得表示了出来;如果翻译成为羽量级模式或者蝇量级模式等等,虽然可以含蓄的...
主要介绍了Java设计模式之共享模式/享元模式(Flyweight模式)介绍,本文讲解了为什么使用共享模式/享元模式、如何使用共享模式/享元模式、Flyweight模式在XML等数据源中应用等内容,需要的朋友可以参考下
C#面向对象设计模式纵横谈(12):Flyweight 享元模式(结构型模式) (Level 300)
主要介绍了C++设计模式编程的Flyweight享元模式结构,享元模式在实现过程中主要是要为共享对象提供一个存放的"仓库"(对象池),需要的朋友可以参考下
享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。
C++设计模式课件13_Flyweight_享元模式.pdf
C#面向对象设计模式纵横谈(12):Flyweight 享元模式(结构型模式)
设计模式之Flyweight(享元) 行为模式: 设计模式之Template 设计模式之Memento(备忘机制) 设计模式之Observer 设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计模式之Strategy...