您的位置:首页 > 其它

设计模式之享元模式

2018-02-25 13:34 155 查看
享元模式是本质上是实现对象的复用的设计模式,内容相同的对象有一个就可以了,当多个场景可以复用同一个对象,即享元;
Flyweight类:public class Flyweight {
private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Flyweight(String name) {
super();
this.name = name;
}

}
Factory类:public class FlyweightFactory {
Map<String,Object> flyweights = new HashMap<String,Object>();
public Flyweight getFlyweight(String name){
Flyweight flyweight = (Flyweight)flyweights.get(name);
if (null == flyweight) {
flyweight = new Flyweight(name);
System.out.println("创建对象:"+name);
flyweights.put(name, flyweight);
}
return flyweight;
}
}Client类:public class Client {
public static void main(String[] args) {
FlyweightFactory factory = new FlyweightFactory();
Flyweight flyweight1 = factory.getFlyweight("张三");
Flyweight flyweight2 = factory.getFlyweight("张三");
Flyweight flyweight3 = factory.getFlyweight("张三");

}
}执行结果为:创建对象:张三
可以看到,对象只创建了一次,实现了对象的复用;在实际业务中,很多对象都会在redis等缓存中存一份,如果没有,再创建;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: