单例模式
27 Aug 2017
保证一个类只有一个实例,并提供一个访问它的全局访问点。首先,需要保证一个类只有一个实例;在类中,要构造一个实例,就必须调用类的构造函数,如此,为了防止在外部调用类的构造函数而构造实例,需要将构造函数的访问权限标记为protected或private;最后,需要提供要给全局访问点,就需要在类中定义一个static函数,返回在类内部唯一构造的实例。类图:
单例模式有两种实现方式:懒汉模式和饿汉模式。
懒汉模式是以时间换空间。
懒汉模式是以空间换时间。
懒汉模式:
饿汉模式:
关于饿汉模式的实例销毁,有一种新的实现方法
总结:懒汉模式适用于一般需要场景,但是当大数据模式下,需要频繁获取实例请求的时候,加锁可能会成为性能瓶颈。因此在需要大量频繁调用的情况下,可以使用饿汉模式
单例模式使用场景:
- 配合工厂模式使用
- 日志对象
- 读写对象