java实现一个单例模式?
概念
在一些场合中,一个类对外提供且只提供一个对象时,这样的类叫做单例类,而设计单例的流程和思想叫做单例设计模式。
实现流程
- 私有化构造方法,private修饰
- 声明本类类型引用指向本类类型对象,并使用private static关键字共同修饰
- 提供公有的 get方法负责将对象返回出去,并使用public static关键字共同修饰
实现方式
单例设计模式的实现方式有饿汉式和懒汉式,推荐饿汉式。
/*
编程实现Singleton类的封装
*/
public class Singleton {
// 2.声明本类类型的引用指向本类类型的对象,使用private static关键字共同修饰
//private static Singleton sin = new Singleton(); // 饿汉式
private static Singleton sin = null; // 懒汉式
// 1.私有化构造方法,使用private关键字修饰
private Singleton() {}
// 3.提供公有的get方法负责将对象返回出去,使用public static关键字共同修饰
public static Singleton getInstance() {
//return sin;
if(null == sin) {
sin = new Singleton();
}
return sin;
}
}
/*
编程实现Singleton类的测试
*/
public class SingletonTest {
public static void main(String[] args) {
// 1.声明Singleton类型的引用指向该类型的对象
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
System.out.println(s1 == s2); // true ,引用型变量比较的是地址,地址相同说明提供的是同一个对象
}
}