【设计模式】单例模式

来源:互联网 发布:下载淘宝 编辑:程序博客网 时间:2024/06/06 02:49

GoF单例设计模式指“保证一个类仅有一个实例,并提供一个访问它的全局访问点”,有如下两种实现方式:
一、通过类静态属性持有单例

public class Singleton {    //私有化构造器    private Singleton(){}    //静态属性持有单例    private static Singleton instance;    //全局访问点    public static Singleton getInstance() {        //惰性初始化        if (instance == null) {            return new Singleton();        }        return instance;    }}

二、通过注册表方式

import java.util.HashMap;import java.util.Map;public class Singleton {    //单例缓存池,不考虑并发    private final Map<String, Object> beans = new HashMap<String, Object>();    //缓存池是否已经存在    public boolean ifContains(String name) {        return beans.containsKey(name);    }    //注册一个单例    public void register(String name, Object bean) {        if (beans.containsKey(name)) {            throw new RuntimeException("[" + name + "]" + "已存在");        }        beans.put(name, bean);    }    //获取单例    public Object getInstance(String name) {        return beans.get(name);    }}
0 0