新手 请教一下什么是单列模式?

解决方案 »

  1.   

    说的是单例模式吧?Singleton Design Pattern?
    就是说,某个class只有一个实例,一般用下面方法实现:public class ClassName {
      private static ClassName instance;  private ClassName(){} // private constructor prevent it from being initialized from any other class  public ClassName getInstance() {
        if (instance == null)
          instance = new ClassName();
        return instance;
      }
    }
      

  2.   

    单例, 即Singleton模式简而言之就是强制一个类有且只能创建一个实例, 所有的clint代码都使用相当的一个对象一般会类似下面这样写一个Singletonpublic class Singleton {
    private static Singleton singleton = null; private Singleton() { 
    // do some initialization
    } public static Singleton getInstance() {
    if (singleton == null)
    singleton = new Singleton();
    return singleton;
    }
    }public class SingletonTest { public static void main(String[] args) {
    Singleton s1 = Singleton.getInstance();
    Singleton s2 = Singleton.getInstance();
    System.out.println(s1 == s2);
    }
    }注意上面代码只适用于单线程环境下, 在多线程环境下需要使用所谓的双检锁(double checked locking)机制, 且只能正常工作于JDK5以上版本, 具体请google搜索...最后, 推荐Head first Design pattern, 一本相当不错的设计模式书籍