知识大全 Java与模式之单例模式
Posted 知
篇首语:少年乘勇气,百战过乌孙。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java与模式之单例模式相关的知识,希望对你有一定的参考价值。
Java与模式之单例模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
单例模式(Singleton) 属于最常见的设计模式之一 大部分系统都会用到 目的是为了维护系统中唯一的一个实例 可分为eager模式 示例代码如下 Java代码 class EagerSingleton private static final EagerSingleton m_instance = new EagerSingleton() private EagerSingleton() public static EagerSingleton getInstance() return m_instance; class EagerSingleton private static final EagerSingleton m_instance = new EagerSingleton() private EagerSingleton() public static EagerSingleton getInstance() return m_instance; 和 lazy模式 示例代码如下 Java代码 class LazySingleton private static LazySingleton m_instance = null; private LazySingleton() public synchronized static getInstance() if(m_instance == null) m_instance = new LazySingleton() return m_instance; class LazySingleton private static LazySingleton m_instance = null; private LazySingleton() public synchronized static getInstance() if(m_instance == null) m_instance = new LazySingleton() return m_instance; java源码中 Runtime getRuntime()就是单例的一个例子 单例模式的精神就是整个系统中维护一个实例 推广开来 如果在一个系统中需要维护多个示例 那么就产生了多例模式(multiton) 多例模式(Multiton) 通过聚集对象了保留自身的多个示例 根据客户端的参数返回所需要的实例 示例代码如下 Java代码 class Multiton private final int INSTANCE_SIZE = ; private static Map instances = new HashMap(INSTANCE_SIZE) private String name; private Multiton() private Multiton(String name) this name = name; public synchronized static getInstance(String name) if(ntainsKey(name)) return instances get(name) else ins = new Multiton(name) instances put(name ins) return ins; class Multiton private final int INSTANCE_SIZE = ; private static Map instances = new HashMap(INSTANCE_SIZE) private String name; private Multiton() private Multiton(String name) this name = name; public synchronized static getInstance(String name) if(ntainsKey(name)) return instances get(name) else ins = new Multiton(name) instances put(name ins) return ins;
cha138/Article/program/Java/hx/201311/25909相关参考