ludy..

精简有限,精彩无限!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 先做个比方:一个停车场有1000辆车子,每辆车子都是一个对象,每个对象实例占用内存0.1M,那么总共点用100M;如果数量再多些10000,100000...系统内存很容易消耗完.我们可以看出这么车子有很多是相同的,那么是否可以用共享的方式来减少实例的数量呢?答案是肯定的,于是FlyWeight方式应蕴而生.
  Flyweight模式的几个要点:

       1、面向对象很好的解决了抽象性的问题,但是作为一个运行在机器中的程序实体,我们需要考虑对象的代价问题。Flyweight设计模式主要解决面向对象的代价问题,一般不触及面向对象的抽象性问题。

2Flyweight采用对象共享的做法来降低系统中对象的个数,从而降低细粒度对象给系统带来的内存压力。在具体实现方面,要注意对象的状态处理。

3、对象的数量太大从而导致对象内存开销加大(这个数量要经过评估,而不能凭空臆断)

 

 

 

From:捕鱼者说

posted on 2009-03-17 14:25  ludy..  阅读(211)  评论(1编辑  收藏  举报