创建型模式
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
当一个全局使用的类频繁的创建和销毁,又需要控制实例数目,节省系统资源的时候。
重要:构造函数私有,不可创建实例。
一
直接创建实例
public class SingleObject {
//创建 SingleObject 的一个对象
private static SingleObject instance = new SingleObject();
//让构造函数为 private,这样该类就不会被实例化
private SingleObject(){}
//获取唯一可用的对象
public static SingleObject getInstance(){
return instance;
}
public void info(){}
}
二
第一次调用是创建实例,getInstance()需要使用同步锁synchronized
public class SingleObject {
//创建 SingleObject 的一个对象
private static SingleObject instance = null;
//让构造函数为 private,这样该类就不会被实例化
private SingleObject(){}
//获取唯一可用的对象
public static synchronized SingleObject getInstance(){
if(instance == null){
instance = new SingleObject();
}
return instance;
}
public void info(){}
}