A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© L.sam 中级黑马   /  2014-6-26 22:18  /  798 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天看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操作);而单例模式则主要是出于共享状态的目的

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马