设计模式之轻量级Flyweight

轻量级模式实现对象的共享,从而减少内存分配的开销。该模式通常和工厂模式一起使用。



Flyweight的目的是为了减少内存的消耗而出现的一种模式。因此他是一种解决实现问题的模式,而不是用来解决建模问题的。



Flyweight享元设计模式是一种结构型设计模式,它主要解决的问题是:由于(同类)对象的数量太大,采用面向对象时给系统带来了难以承受的内存开销。



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

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






Java代码 
1.public class FlyweightFactory{   
2.  private Hashtable flyweights = new Hashtable();   
3. 
4.  public Flyweight getFlyweight(String key ){   
5.    Flyweight flyweight = (Flyweight) flyweights.get(key);   
6. 
7.    if(flyweight == null){  
8.      flyweight = new ConcreteFlyweight();   
9.      flyweights.put(key, flyweight);   
10.    }   
11. 
12.    return flyweight;   
13.  }   
14.} 

你可能感兴趣的:(flyweight)