今天看7K视频时,发现了一个享元模式,先以为是单例模式的另外一个名称,然后我发现我错误了,我百度了一下,下面是一个网友的回答:
享元模式可以理解成一组共享的对象集合,下面就是一个简单的享元设计模式(甚至可以说是工厂模式了,呵呵,工厂模式目的是将具体创建对象的过程由工厂方法提供,用户只需要知道抽象类型即可。但这个例子就不要纠结成工厂模式了)
private Map<String, Object> map = new HashMap<String, Object>
public Object get(String key) {
if(map.containsKey(key)) {
return map.get(key);
}
Object obj = new Object();
map.put(key, obj);
return obj;
}
单例模式见下
public class S {
private static S s = new S();
private S() {
}
public static S getInstance() {
return s;
}
}
从上面我们享元设计模式是一个类有很多对象,而单例是一个类仅一个对象;享元模式是为了节约内存空间,提升程序性能(避免大量的new操作);而单例模式则主要是出于共享状态的目的 |
|