2.2 设计模式详解(重点)
2.2.1 单例设计模式
单例设计模式主要分为:饿汉式 和 懒汉式,懒汉式需要对多线程进行同步处理。
package demo01;
//单例设计模式
public class Singleton {
//2.声明本类类型的引用指向本类类型的引用并使用private static
private static Singleton sin = null;
//懒汉式
//1.私有化构造方法,使用private关键字修饰
private Singleton() {
}
//3.提供公有的get方法负责将上述对象返回出去,使用public static关键字修饰
//有且只有一个线程调用
//所以线程同步
public static /*synchronized*/ Singleton getInstance() {
//等价于
// synchronized (Singleton.class) {
/*if (null != sin) {
sin = new Singleton();
}
return sin;*/
// }
//优化:只需要new一次对象,sin不为null时只要返回对象即可
if (null == sin) {
synchronized (Singleton.class) {
sin = new Singleton();
}
}//sin不为空,返还对象
return sin;
}
}