1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
单例模式可以在一定程度上节省不少空间
为了使其不能随意创建对象实例,只能将构造函数私有化。
由于构造函数已经私有了,只能在其内部创建实例(饿汉式和懒汉式)
由于外部无法直接创建实例对象,所以单例模式使用静态方法。
饿汉式
饿汉式的优点:
饿汉式天生就是线程安全的,可以直接用于多线程而不会出现问题。
缺点:占用内存,加载时间过长。
懒汉式
懒汉式的优点:
延迟对象的创建。
缺点:懒汉式本身是非线程安全的。