单例模式——创建型模式(一)
单例模式是一种创建型设计模式,让你能够保证一个类只有一个实例,并提供一个访问该实例的全局方法。
所有单例的实现都包含以下两个相同的步骤:
- 构造函数私有,防止其它对象使用单例类的
new运算符 - 新建一个静态方法替代构造函数。该函数会调用私有构造方法来创建对象,并将其保存在一个静态成员变量中。此后所有的对于该函数的调用都将返回这一缓存对象。

伪代码
单例类
public class Singleton {
/**
* 静态成员变量缓存单例
*/
public static Singleton instance;
private String value;
public String getValue() {
return this.value;
}
/**
* 构造方法私有
* @param value value
*/
private Singleton(String value) {
this.value = value;
}
/**
* 静态方法替代构造函数
* @param value value
* @return Singleton
*/
public static Singleton getInstance(String value) {
// 初次调用时初始化
if (instance == null) {
instance = new Singleton(value);
}
// 返回缓存对象
return instance;
}
}
客户端
public class DemoSingleton {
public static void main(String[] args) {
Singleton king = Singleton.getInstance("king");
Singleton queen = Singleton.getInstance("queen");
System.out.println(king.getValue());
System.out.println(queen.getValue());
}
}
结果

可以看到,由于第一次调用时候单例类中缓存对象instance中已经赋值,第二次调用直接返回此缓存对象,故两次的输出结果相同。
本文介绍了一种创建型设计模式——单例模式,该模式确保一个类只有一个实例,并提供了一个全局访问该实例的方法。通过私有构造函数和一个静态方法实现单例模式,后者在首次调用时创建实例并缓存,后续调用返回缓存实例。
1582

被折叠的 条评论
为什么被折叠?



