10.1单例模式
(1)一个类只有一个实例。这是满足单例模式最基本的要求,若要满足这个关键点,只能提供私有的构造器,即保证不能随意创建该类的实例。
(2)它必须自行创建这个实例。对于这一点,正是体现了:单例模式的“有且仅有一个实例”的这一特性,我们要保证唯一性,也就意味着必须要提供一个实例,那么就需要它自行创建,定义一个configmanger类型的静态的私有化,以便向外界提供该类实例时使用。
(3)它必须自行向整个系统提供这个实例。最后一的点也是至关重要的,外界需要获取并使用这个单例类的实例,但是由于该类的构造器是私有的,外界无法通过new去获取它的实例,那么就必须提供一个静态的公有方法,该方法创建或者获取它本身的静态私有对象并返回
10.1.2懒汉模式
所谓懒汉模式,正如其名比较懒,即在类加载时不创建实例采用延迟加载的方法,在运行调用时创建实例,在类加载时不 初始化,需要时调用方法,当然在这种情况下,虽然保证了其延迟加载的特性,但也存在线程安全问题,在多线程下无法正常工作,这也是致命的缺陷,现在我们来修改。
10.1.3饿汉模式
饿汉模式是指在类加载的时候完成了初始化操作,故类加载较慢,但是获取对象的速度很快,并且由于饿汉模式四在初始化时就已经自行实例化,因此它肯定不存在现在安全问题。