3.5 单例模式
单例模式定义:
单例模式(也叫单件模式)是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)。
UML类图:
类图代码:
主动式(不管有没有调用,都先实例化出来):
public class Singleton { private static Singleton singleton = new Singleton(); private Singleton() {} public static Singleton getInstance(){ return singleton; } }
被动式(第一次调用的时候才实例化出来):
public class Singleton { private static Singleton singleton; private Singleton() {} public static synchronized Singleton getInstance(){ if (singleton == null) { singleton = new Singleton(); } return singleton; } }
模式特色:
(1)单例模式使类在程序生命周期的任何时刻都只有一个实例,
(2)单例的构造函数是私有的,外部程序如果想要访问这个单例类的话,必须通过 getInstance()来获取这个单例类的实例。
模式应用场景:
(1)配置文件类一般都可以通过单例模式实现,因为配置文件在应用中只需一份就够了。