创建型设计模式-单例模式

2019-01-14  本文已影响12人  微风细雨007

应用最广的模式-单例模式

应用场景

关键点

实现方式

包括:饿汉模式,懒汉模式,双重校验锁模式静态内部类,枚举等..

饿汉,静态内部类,枚举都是线程安全的。双重校验锁使用volatile

推荐实现方法:静态内部类

推荐词:内部类的方式保证了仅当单例类被调用时才实例化对象,同时也保证了线程安全;他利用classloader的机制来保证初始化instance时只有一个线程;当getInstance方法被调用时,内部类SingletonHolder才会被装载,从而实例化单例类。

public class Singleton {
    //1.私有构造方法
    private Singleton() {
    }

    //2.创建静态内部类
    private static class SingletonHolder {
        private static final Singleton INSTANCE = new Singleton();
    }

    //3.创建实现方法
    public static Singleton getInstance() {
        return SingletonHolder.INSTANCE;
    }
    
}

枚举单例

推荐词:写法简单,线程安全,反序列化也不会生成新的实例

public enum SingletonEnum {
    INSTANCE;

    public void showMessage(){
        System.out.println("Hello World !!!");
    }
}

总结

单例模式是运用频率很高的模式,但是,由于在客户端通常没有高并发情况,因此,选择哪种方式并不会有太大影响

Kotlin

这个相当于饿汉模式,基本一般开发要求都能满足了

object SingletonKt {
}
上一篇 下一篇

猜你喜欢

热点阅读