为什么使用FlyWeight模式

意图:运用共享技术有效的支持大量细粒度的对象

为什么使用?

      1:软件系统中,对象的数量可能太多,从而导致运行时的代价,比如 字处理软件,如果以每个汉字作为一个对象,那么几千个汉字就有几千个对象,显然 这样耗费了很多内存,于是我们找出这些对象群的共同点,设计一个元素,封装可以共享的类,当然,有些特性是取决于应用环境 是不可以共享的。这也是本模式中两个很重要的概念 内部状态和外部状态之分,也就是说先创建一个原始模型,然后随着不同场合和环境,再产生各具特征的具体模型。

总结:

     1:本模式的优点是 可以大幅度地降低对象的个数。

     2:缺点是 由于需要暴露很多状态 使状态外部化,这样就导致封装的不严密。易导致程序逻辑复杂。

     3:使用本模式还需要维护一个记录了系统已有的所有享元的表,而这也需要耗费资源。

posted @ 2008-12-27 09:50  wangok  阅读(155)  评论(0)    收藏  举报