您的位置:首页 > 其它

设计模式笔记-享元模式

2014-10-01 15:51 176 查看
享元模式的作用是共享元素,这样就不用调用相同元素时候,都去实例化一个对象,节省内存提高效率。
public interface FlyWeight {
public void operation();
}
public class ConcreteFlyWeight implements FlyWeight {
String flyWeight ;
public ConcreteFlyWeight(String flyWeight) {
this .flyWeight = flyWeight;
}

public void operation() {
System. out .println("the flyWeight is :" + flyWeight + " the real obj is :"+ this);
}
}
public class FlyWeightFactory {
public Map<String, FlyWeight> map   = new HashMap<String, FlyWeight>();

public FlyWeight getFlyWeight(String name) {
if (map .containsKey(name)) {
return map .get(name);
} else {
FlyWeight flyWeight = new ConcreteFlyWeight(name);
map.put(name, flyWeight);
return flyWeight;
}
}
}
public class FlyWeightClient {

public static void main(String[] args) {
FlyWeightFactory factory = new FlyWeightFactory();
FlyWeight fly1 = factory.getFlyWeight( "fly" );
FlyWeight fly2 = factory.getFlyWeight( "weight" );
FlyWeight fly3 = factory.getFlyWeight( "fly" );
FlyWeight fly4  = factory.getFlyWeight( "weight" );
FlyWeight fly5  = factory.getFlyWeight( "weight" );;
fly1.operation();
fly2.operation();
fly3.operation();
fly4.operation();
fly5.operation();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: