目录
1、介绍
单例模式是非常简单的一种设计模式,属于创建型模式,它提供了一种创建对象的最佳方式
确保某一个类只有一个实例,而且自行实例化并向所有其他对象提供这个实例
主要解决:一个全局使用的类频繁地创建与销毁。
有两种实现模式,懒汉式和饿汉式
2、特点
- 单例类只有一个实例对象
- 私有化构造方法,不允许被外界调用
- 该单例对象必须由单例类自行创建(通过getInstance())
- 单例类对外提供一个访问该单例的全局访问点(getInstance()方法public static)
3、懒汉式
被调用时,会判断对象是否已存在,只有第一次调用的时候会去创建这个实例
是否线程安全:懒汉式本身是线程不安全的,在getInstance方法上加synchronized保证线程安全
效率:加了锁,执行效率就低了
public class LazySingleton {
private static LazySingleton instance = null;
构造函数设为private,这样不允许通过调用构造方法来实例化该类
private LazySingleton() {}
//synchronized保证线程安全
public static synchronized LazySingleton