是的。
单例模式指的是一种常用的软件设计模式,类创建单一实例以满足多方调用,即一个类只有一个对象实例。优点在于单例模式只构建单一实例,供多个方法使用,避免多个方法构造同个类多个对象,减少内存的开销。缺点在于单例模式没有接口,也没有抽象层,扩展性性差,如需扩展,需在原有代码上进行修改。
单例模式实现方式
1、懒汉式—线程不安全:最基础的实现方式,线程上下文单例,不需要共享给所有线程,也不需要加synchronize之类的锁,以提高性能。
2、懒汉式—线程安全:加上synchronize之类保证线程安全的基础上的懒汉模式,相对性能很低,大部分时间并不需要同步。
3、饿汉方式。指全局的单例实例在类装载时构建。
4、双检锁式。在懒汉式基础上利用synchronize关键字和volatile关键字确保第一次创建时没有线程间竞争而产生多个实例,仅第一次创建时同步,性能相对较高。
5、登记式。作为创建类的全局属性存在,创建类被装载时创建。
6、枚举。java中枚举类本身也是一种单例模式。