在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案,是经过多年开发语言发展由众多的程序员积累总结出来的。掌握设计模式的应用,可以大大提高程序员的编程效率。本文将和大家分享我们常见的六种设计模式以及其应用场景。

1) 单例模式
在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。
应用场景:如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
2) 工厂模式
工厂模式主要是为创建对象提供了接口。
应用场景如下:
a、 在编码时不能预见需要创建哪种类的实例。
b、 系统不应依赖于产品类实例如何被创建、组合和表达的细节。
3) 策略模式
策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换。此模式让算法的变化独立于使用算法的客户。
应用场景如下。
a、 一件事情,有很多方案可以实现。
b、我可以在任何时候,决定采用哪一种实现。
c.、未来可能增加更多的方案。
d、 策略模式让方案的变化不会影响到使用方案的客户。
举例业务场景如下。
系统的操作都要有日志记录,通常会把日志记录在数据库里面,方便后续的管理,但是在记录日志到数据库的时候,可能会发生错误,比如暂时连不上数据库了,那就先记录在文件里面。日志写到数据库与文件中是两种算法,但调用方不关心,只负责写就是。
4) 观察者模式
观察者模式又被称作发布/订阅模式,定义了对象间一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
应用场景如下:
a、对一个对象状态的更新,需要其他对象同步更新,而且其他对象的数量动态可变。
b、对象仅需要将自己的更新通知给其他对象而不需要知道其他对象的细节。
5) 迭代器模式
迭代器模式提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。
应用场景如下:
当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍 历的时候,就应该考虑用迭代器模式。其实stl容器就是很好的迭代器模式的例子。
6) 模板方法模式
模板方法模式定义一个操作中的算法的骨架,将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些步骤。
应用场景如下:对于一些功能,在不同的对象身上展示不同的作用,但是功能的框架是一样的。
设计模式的学习固然会简化自己的工作流程,但是作为一个优秀的程序员,依旧要深化了解其原理,不能一味的生搬硬套。否则未来面对不断更迭的技术,最终会失去竞争能力。文章内容整理自网络,仅供参考。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java在线学习网站有哪些?
Java开发自学平台,很多人由于个人兴趣爱好,想学习java编程,一些在职的人群,选择java在线学网站更方便学习。java在线学习平台有传智播客旗下博学谷线上IT学习平台、Stack overflow 、CSDN、Github、LeetCode 、简书、Java SE 技术文档、Java World 、Program Creek、掘金、知乎等。
14459
2019-06-19 10:52:58
Java工程师必须掌握的五个工具
Java编程语言具有极高的安全性,因此大部分企业都使用Java开发自己的核心产品。而对于Java工程师而言,想要提高自己的工作效率,要么就是掌握扎实的开发技能,面对功能需求可以快速完成,要么就是掌握更多的高效工具,提高自己编程的效率。这里和广大的java工程师分享五个必须掌握的工具。
8483
2019-07-01 19:02:59
使用集合类各种容器时必须注意的细节
Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再一一个类的形式提供。集合类可以在里面保存多个对象的类,不同的集合类有不同的功能和特点。这里就和大家介绍一下再使用集合类各种容器的时候,必须注意的相关细节。
5574
2019-12-11 18:30:42
数据结构应该怎么学?有哪些建议?
随着计算机科学和互联网技术的日新月异,越来越多的人选择投身于程序员这一职业。尤其是目前的市场中高端的程序员,还处于巨大的人才缺口之中。而低端程序员和中高端程序员一个显著的差别就是,数据结构这一内功掌握得怎么样。那么可能会有人问了:数据结构应该怎么学?有哪些建议呢?下面我们就来看看具体的学习方法。
7467
2020-02-14 19:11:18
黑马头条项目实战学什么?
随着智能手机的普及和生活节奏的加快,人们更加习惯于利用碎片时间通过手机来看新闻。 因此,现在对于移动资讯客户端的需求也越来越高,黑马头条项目正是在这样背景下研发出来的。 黑马头条项目是对在线教育平台业务进行大数据统计分析的系统,碎片化、切换频繁、社交化和个性化现如今成为人们阅读行为的标签。那么,黑马头条项目实战学什么呢?
8554
2020-04-28 18:37:32
