1.享元模式的定义
运用共享技术 有效的支持大量的细粒度对象。
2.享元模式的UML
3.代码实现
public interface Flyweight
{
public void operation(String extrinsicState);
}
public class ConcreteFlyweight implements Flyweight
{
private String intrinsicState;
public ConcreteFlyweight(String state){
this.intrinsicState=state;
}
public void operatrion(String extrinsicState){
}
}
public class UnsharedConcreteFlyweight implements Flyweight
{
public String allState;
public void operation(String extrinsicState){
}
}
public class FlyweightFactory
{
private Map<String,Flyweight> fsMap=new HashMap<String,Flyweight>();
private static FlyweightFactory flyweightFactory=new FlyweightFactory();
private FlyweightFactory(){
}
public static FlyweightFactory getInstance(){
return this.flyweightFactory;
}
public Flyweight getFlyweight(String key){
Flyweight f=fsMap.get(key);
if(flyweight==null){
f=new ConcreteFlyweight(key);
fsMap.put(key,f);
}
return f;
}
}
public class Client
{
FlyweightFactory factory=FlyweightFactory.getInstance();
/**
* 下面做自己想做的。。。
**/
}
4.享元模式的本质: 分离与共享