在JAVA中有个单子模式的问题,想问这个单子模式该怎么写,又该怎么去用?

解决方案 »

  1.   

    public class SingleTonTest{
       SingleTon st=SingleTon.getInstance();
    }class SingleTon{
      private static SingleTon stance=new SingleTon();
      
      private SingleTon(){
      } 
      
      public static SingleTon getInstance(){
       return instance;
      }}
    这只是一种范例,还有别的例子的。
    单子模式主要用来限制在一次执行中执行的情况下,只有一个此类的实例存在。
    例如你的银行帐户之类的信息!
      

  2.   

    这是一个双重加锁 同步安全的 单件模式public class SingleClasses {

    private volatile static SingleClasses singleClasses;

    private SingleClasses() { // 改写为私有就不能直接new出这个类了
    System.out.println("此构造只会调用一次");
    }

    public static SingleClasses getInstance(){

    if (null == singleClasses) { // 一次检索
    synchronized (SingleClasses.class) { // 同步代码块
    if (null == singleClasses) { // 二次检索
    singleClasses = new SingleClasses();
    }
    }
    }
    return singleClasses;
    }

    }
      

  3.   

    /**
     * 
     * @author Administrator
     * this is a simple example
     */
    public class TestSimple { private static TestSimple testSimple = null;

    /**
     * Definition of a private constructor
     */
    private TestSimple() {

    }

    public static TestSimple getInstance() {
    if(testSimple == null) {
    testSimple = new TestSimple();
    }
    return testSimple;
    }

    }
      

  4.   


    /**
     * 
     * @author Administrator
     * this is a simple example
     */
    public class TestSimple { private static TestSimple testSimple = null;

    /**
     * Definition of a private constructor
     */
    private TestSimple() {

    }

    public static TestSimple getInstance() {
    if(testSimple == null) {
    testSimple = new TestSimple();
    }
    return testSimple;
    }

    }
      

  5.   

    /**
     * 
     * @author Administrator
     * this is a simple example
     */
    public class TestSimple { private static TestSimple testSimple = null;

    /**
     * Definition of a private constructor
     */
    private TestSimple() {

    }

    public static TestSimple getInstance() {
    if(testSimple == null) {
    testSimple = new TestSimple();
    }
    return testSimple;
    }

    }