罕用设计模式之单例设计模式
小伙伴们对于单例设计模式理解有多少呢?
懒汉试、饿汉式、还有吗?双重判断 ……
明天我来带大家重新认识一下 7 种单例设计模式,没错,你没看错,是 7 种!
第一种,饿汉式单例设计模式
饿汉式是老熟人了,不多 bb,间接上码!
- 类加载到内存后,就实例化一个单例,JVM 保障线程平安
- 简略实用,举荐应用
- 惟一毛病就是,不论是否应用,类加载时就实现实例化
第二种,懒汉式单例设计模式
也是老熟人了,间接上码!
- 解决了饿汉式的一点毛病,但却引入了线程平安问题
第三种,synchronized 版本一单例设计模式
- 解决了第二种的线程平安问题,然而带来了效率降落的问题
第四种,synchronized 版本二单例设计模式
- 尝试将办法锁换成代码块锁,想要用缩小锁的力度来换取一点效率上的晋升,然而却又引入了线程平安的问题
第五种,双重判断单例设计模式
- 利用双重判断,解决了线程平安的问题
越来越思念单例最后的版本 ……………..
第六种,动态外部类单例设计模式
- JVM 保障单例,并且加载外部类时不会加载外部类,又实现了懒加载
丑陋!完满!你认为这样就完结了吗?上面有请咱们的神级版本第七种,枚举单例
第七种,枚举单例
- 不仅解决了线程同步,而且能够避免反序列化
我 MingLog 愿称你为最强单例
看完这些,是不是让你对单例设计模式有了更深层次的认知呢,学废了嘛,学废了就点个赞再走吧