在写这个之前我先申明本文只代表我个人观点。根据以往学习的资料加自己的理解,如有不认可,欢迎更正和补充。
作为很常用的设计模式 单列模式:简单理解就是类的实例永远是同一个。从而达到对资源的合理利用,不浪费,提高效率
以及多线程下安全运行。
代码上的简单理解就是只会去初始化一次。然后这个对象在以后使用过程中反复被复用。
我们知道创建一个对象一般情况下都是new一个对象。如果我们能保证代码只会new一次,那么我们就可以说这个类是单列的。
代码实现:
分为情况:常见两种情况,并发下情况
并发情况测试类,老测不出来。暂无截图。后期有时间补上。可能是我写的测试类有问题。
1.常见两种情况:懒汉式和饿汉式 挺形象的 我就不自己改名字啦。
懒汉式:之所以叫形容为叫懒汉式,因为它是需要的时候,才去创建
饥饿式:之所以叫形容为叫饿汉式,因为它一开始就创建好了。
SigletonUtil
2.并发下类型:就是对常见两种类型的代码进行改造。使它支持并发,并发情况先线程安全。
代码实现:
效率低方式,而且不是绝对安全,只是出现的混乱的情况概率极低而言
效率高方式:双重检查模式 (DCL)
推荐方式 内部类方式
容器管理模式:如果项目存在很多单列类,考虑这种。便以管理,内部隐藏,耦合度低等一些好处。但是很少用到。比较以项目单列类不会有很多。具体情况具体考虑。这边只给参考