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 }