创建型模式共有五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
三、单例模式:
即一个类的对象,常用在线程池,数据库连接池等等场景。
立即加载的单例:
public MyClass {
private static MyClass uniqueInstance=new MyClass();
private MyClass(){
}
public static MyClass getInstance(){
return uniqueInstance;
}
}
双重锁定实现延迟加载的单例:
class MyClass {
private static volatile MyClass uniqueInstance;
private MyClass(){
}
public static MyClass getInstance(){
if (uniqueInstance==null) {
synchronized (MyClass.class) {
uniqueInstance=new MyClass();
}
}
return uniqueInstance;
}
}
基于类的生命周期的延迟加载的单例实现:
class MyClass {
private MyClass(){ }
private static class Instance{
private static MyClass uniqueInstance=new MyClass();
}
public static MyClass getInstance(){
return Instance.uniqueInstance;
}
}
可以看出单例模式的构造器都是私有的。