单例模式的常用实现方法有4种实现方式:饿汉模式、懒汉模式、静态内部类和枚举。
推荐使用懒汉模式及枚举。
使用单例模式可以避免频繁创建和销毁对象,减少系统资源的消耗。
- 懒汉模式
publicclassSingleton { privateSingleton() {} privatestaticvolatileSingletoninstance=null; publicstaticSingletongetInstance() { if (instance==null) { synchronized (Singleton.class) { if (instance==null) { instance=newSingleton(); } } } returninstance; } }
- 枚举
publicenumSingletonEnum { INSTANCE; publicSingletonEnumgetInstance(){ returnINSTANCE; } }
- 静态内部类
publicclassSingleton { privateSingleton() { } privatestaticclassSingletonHolder { privatestaticfinalSingletonINSTANCE=newSingleton(); } publicstaticfinalSingletongetInstance() { returnSingletonHolder.INSTANCE; } }
- 饿汉模式
publicclassSingleton { privateSingleton() {} privatestaticSingletoninstance=newSingleton(); publicstaticSingletongetInstance() { returninstance; } }