概述
单例模式 (Singleton Pattern) 又称单件模式、单态模式。确保一个类只能有一个实例,同时保证该类的实例只能在类内部创建,提供给整个系统使用。
优点:节约系统资源,提高系统性能。
缺点:扩展困难,一定程度上违反了“单一职责原则”。
class Singleton {
private static Singleton instance = null;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
图示:
分类:单例模式分为饿汉式和懒汉式。饿汉式是在类加载时就创建了类实例,而懒汉式是在需要类实例时才创建类实例。
// 饿汉式,懒汉式见上一段代码
class Singleton {
private static Singleton s = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return s;
}
}
参考
[1] 刘伟,设计模式,2011.