Singleton模式
又称为单例模式,只含有一个元素的集合。只能生成一个实例。
- 对象的实例已经在类中做了。定义个static字段的成员变量singleton,将其初始化为Singleton的实例。
- 将Singleton类的构造函数设置为private,能够确保在任何情况下都能生成一个实例。
外部无法调用构造函数new singleton() ,一旦调用,就会出现编译错误。 - 需要一个方法getInstance(),以便于程序从Singleton类外部获取singleton类唯一实例。相当于开门,如果不开这道门,那么外部将没有办法使用Singleton内定义的非private方法。
出场角色
-
Singleton
Singleton角色有一个返回的唯一实例的static方法,该方法总是会返回同一个实例。
class Singleton{
private static Singleton singleton = new Singleton();
private Singleton() {
System.out.println("Singleton被实例化了");
}
public static Singleton getInstance() {
return singleton;
}
}
public class TestSingleton {
public static void main(String[] args) {
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
if(s1 == s2) {
System.out.println("s1,s2是相同实例");
}
}
}