关注
https://www.cnblogs.com/yueguanguanyun/p/9584501.html
十种常见的设计模式
应用场景:
优点:
1.在单例模式中,活动的单例只有一个实例,对单例类的所有实例化得到的都是相同的一个实例。这样就 防止其它对象对自己的实例化,确保所有的对象都访问一个实例
2.单例模式具有一定的伸缩性,类自己来控制实例化进程,类就在改变实例化进程上有相应的伸缩性。
3.提供了对唯一实例的受控访问。
4.由于在系统内存中只存在一个对象,因此可以 节约系统资源,当 需要频繁创建和销毁的对象时单例模式无疑可以提高系统的性能。
5.允许可变数目的实例。
6.避免对共享资源的多重占用。
缺点:
1.不适用于变化的对象,如果同一类型的对象总是要在不同的用例场景发生变化,单例就会引起数据的错误,不能保存彼此的状态。
2.由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。
3.单例类的职责过重,在一定程度上违背了“单一职责原则”。
4.滥用单例将带来一些负面问题,如为了节省资源将数据库连接池对象设计为的单例类,可能会导致共享连接池对象的程序过多而出现连接池溢出;如果实例化的对象长时间不被利用,系统会认为是垃圾而被回收,这将导致对象状态的丢失。
使用注意事项:
1.使用时不能用反射模式创建单例,否则会实例化一个新的对象
2.使用懒单例模式时注意线程安全问题
3.单例模式和懒单例模式构造方法都是私有的,因而是不能被继承的,有些单例模式可以被继承(如登记式模式)
适用场景:
单例模式只允许创建一个对象,因此节省内存,加快对象访问速度,因此对象需要被公用的场合适合使用,如多个模块使用同一个数据源连接对象等等。如:
1.需要频繁实例化然后销毁的对象。
2.创建对象时耗时过多或者耗资源过多,但又经常用到的对象。
3.有状态的工具类对象。
4.频繁访问数据库或文件的对象。
查看原帖
1 评论
相关推荐
点赞 评论 收藏
分享

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你现在会用到哪些AI技能? #
7309次浏览 89人参与
# 腾讯工作体验 #
514561次浏览 3551人参与
# 平安产险科技校招 #
932次浏览 0人参与
# 大厂VS公务员你怎么选 #
29994次浏览 412人参与
# 我的求职进度条 #
95730次浏览 1231人参与
# 发面经攒人品 #
2602251次浏览 35629人参与
# 未岚大陆求职进展汇总 #
8053次浏览 84人参与
# 实习在多还是在精 #
35815次浏览 251人参与
# 你还有多少年退休? #
27046次浏览 192人参与
# 小马智行求职进展汇总 #
13840次浏览 50人参与
# 秋招踩过的“雷”,希望你别再踩 #
86956次浏览 1100人参与
# 顺丰求职进展汇总 #
63743次浏览 316人参与
# 你的房租占工资的比例是多少? #
65259次浏览 801人参与
# 我对___祛魅了 #
132701次浏览 737人参与
# 反问环节如何提问 #
115738次浏览 2472人参与
# 实习下班不想学习,正常吗? #
20963次浏览 178人参与
# 如果不考虑收入,你最想做什么工作? #
32840次浏览 188人参与
# 你见过哪些工贼行为 #
17257次浏览 96人参与
# 金蝶求职进展汇总 #
54189次浏览 263人参与
# 校招谈薪一定要知道的事 #
13898次浏览 118人参与
# 总结:哪家公司面试体验感最好 #
70468次浏览 416人参与
# 你觉得材料多少算高薪 #
26374次浏览 159人参与