设计模式之-单例模式

单例模式是23中设计模式的一种,其中单例模式又可以简单的划分为饿汉式和懒汉式。接下来针对这两种方式的实现方式进行详细的讲解。
    饿汉式:1、构造方法私有;2、将类进行实例化,并设置为私有的类变量。

    懒汉式:1、构造方法私有;2、需要进行类的声明,但不需要实例化,需要设置私有的类变量。
 二者的区别:饿汉式是在类加载时就把类的实例创建出来,所有加载慢,但是运行快,而且是线程安全的;懒汉式是在第一  次   调用类的实例时才创建类的实例,所有类加载快,运行的速度慢,线程不安全。

  饿汉式的具体实现的案列如下:
         class Singleton {
             private Singleton() {}    //构造方法私有
             private static Singleton instance = new Singleton();  //进行类的实例化,且设置为私有的类变量
             public  static Singleton getInstance() {   //提供外界访问实例的方法
             return instance;
     }
}

    懒汉式的实现案例:
        
     public class Singleton2 {
     private Singleton2() {   }   //构造方法私有
     private static Singleton2 single;   //声明类,却不实例化
     public static Singleton2 getInstance() {    //提供外界访
     if (single == null) {
       single = new Singleton2();
       }
      return single;
     }
}

     判断类是否长生单一实例的判断的方法
        //饿汉式
  Singleton s = Singleton.getInstance();
  Singleton s2= Singleton.getInstance();
  System.out.println(s==s2);   //判断是否输出true即可
  
  //懒汉式
  Singleton2 s3 = Singleton2.getInstance();
  Singleton2 s4 = Singleton2.getInstance();
  System.out.println(s3==s4);    //判断是否输出true即可

猜你喜欢

转载自blog.csdn.net/qq_38061755/article/details/80314961