图一简单工厂,红圈是内部逻辑,修改违反封闭原则,不好。
对于图二,工厂模型,增加新的工厂,最小改动。
图三,抽象工厂,只是多个产品线而已,用处不是很广
单例模式,双重校验
public class SingletonDemo7 {
private volatile static SingletonDemo7 singletonDemo7;
private SingletonDemo7(){}
public static SingletonDemo7 getSingletonDemo7(){
if (singletonDemo7 == null) {
synchronized (SingletonDemo7.class) {
if (singletonDemo7 == null) {
singletonDemo7 = new SingletonDemo7();
}
}
}
return singletonDemo7;
}
}