单态类,其实以前也用过,但是概念不清,理解不透,不知道什么时候用什么时候不能用,希望有实际操作经验的大侠来给我介绍下,能配合实例就更好了。

解决方案 »

  1.   

    单态类就是单子模式,Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 
    一般Singleton模式通常有几种种形式: 
    第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。 /*
     *java中的单态类
    */
    public class TestSingle {
      public static void main(String[] args) {
        Single s1 = Single.getSingle();   //返回Single的onlyone类实例
        Single s2 = Single.getSingle();   //返回Single的onlyone类实例
        if (s1 == s2) {
          System.out.println("s1 is equals to s2");
        }
      }
    }
    class Single //单态类
    {
      private static Single onlyone = new Single();//生成一个类实例
      private String name = "onlystate";
      public static Single getSingle() {      //该函数返回onlyone类实例
        return onlyone;
      }
      private Single() {}//构造方法为私有
    }其他形式: 
    定义一个类,它的构造函数为private的,所有方法为static的。 
    一般认为第一种形式要更加安全些 
      

  2.   

    在Web应用中的serlvet就属于单态的