知识大全 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

相关参考