【JAVA基础】单例模式的设计

1. 单例设计模式的概念

  在某些特殊场合中,一个类对外提供且只提供一个对象时,这样的类叫做单例类,而设计单例的流程和思想叫做单例设计模式。

 

2. 单例设计模式的实现流程

2.1. 私有化构造方法,使用private关键字修饰。

2.2. 声明本类类型的引用指向本类类型的对象,并使用private static关键字共同修饰。

2.3. 提供公有的get方法负责将对象返回出去,并使用public static关键字共同修饰。

 

3. 单例设计模式的实现方式

  单例设计模式的实现方式有两种:饿汉式 和 懒汉式,在以后的开发中推荐饿汉式。

 1 /*
 2     编程实现Singleton类的封装
 3  */
 4 public class Singleton {
 5     
 6     // 2.声明本类类型的引用指向本类类型的对象,使用private static关键字共同修饰
 7     //private static Singleton sin = new Singleton();  // 饿汉式
 8     private static Singleton sin = null;               // 懒汉式
 9     
10     // 1.私有化构造方法,使用private关键字修饰
11     private Singleton() {}
12     
13     // 3.提供公有的get方法负责将对象返回出去,使用public static关键字共同修饰
14     public static Singleton getInstance() {
15         //return sin;
16         if(null == sin) {
17             sin = new Singleton();
18         }
19         return sin;
20     }
21 }
 1 /*
 2     编程实现Singleton类的测试
 3  */
 4 public class SingletonTest {
 5     
 6     public static void main(String[] args) {
 7         
 8         // 1.声明Singleton类型的引用指向该类型的对象
 9         //Singleton s1 = new Singleton();
10         //Singleton s2 = new Singleton();
11         //System.out.println(s1 == s2); // 比较变量s1的数值是否与变量s2的数值相等  false
12         //Singleton.sin = null;  可以使得引用变量无效
13         Singleton s1 = Singleton.getInstance();
14         Singleton s2 = Singleton.getInstance();
15         System.out.println(s1 == s2); // true
16     }
17 }
原文地址:https://www.cnblogs.com/Tree0108/p/14106358.html