当前位置:首页 > 服务端 > 常用设计模式及其应用场景

常用设计模式及其应用场景

2022年11月09日 23:05:41服务端9

设计模式是对设计原则的具体化。用江湖话说就是武林秘籍,总结出来的一些固定套路,编程界的《葵花宝典》。

个人意见,编程过程中设计原则进行遵循,对设计模式进行借鉴。完全按照套路来,有时反而简单问题复杂化。

常用的模式及其场景如下。

1) 单例模式。

单例模式是一种常用的软件设计模式。

在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。

对应类图。

\

应用场景:如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

2) 工厂模式。

工厂模式主要是为创建对象提供了接口。

工厂模式按照《Java与模式》中的提法分为三类:

a. 简单工厂模式(Simple Factory)

b. 工厂方法模式(Factory Method) <喎�"/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+Yy4gs+nP87mks6fEo8q9KEFic3RyYWN0IEZhY3RvcnkpIDwvcD4KPHA+ICAgICAgINXiyP3W1sSjyr2008nPtb3Pwtbwsr2z6c/zo6yyosfSuPy+39K7sOPQ1KGjPC9wPgo8cD4gICAgICAgttTTpsDgzbyhozwvcD4KPHA+IDxpbWcgc3JjPQ=="/uploadfile/Collfiles/20141213/20141213090340208.png" alt="\">

下面是使用工厂模式的两种情况:

a. 在编码时不能预见需要创建哪种类的实例。

b. 系统不应依赖于产品类实例如何被创建、组合和表达的细节。

3) 策略模式。

策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换。此模式让算法的变化独立于使用算法的客户。

对应类图。

\

应用场景如下。

a. 一件事情,有很多方案可以实现。

b. 我可以在任何时候,决定采用哪一种实现。

c. 未来可能增加更多的方案。

d. 策略模式让方案的变化不会影响到使用方案的客户。

举例业务场景如下。

系统的操作都要有日志记录,通常会把日志记录在数据库里面,方便后续的管理,但是在记录日志到数据库的时候,可能会发生错误,比如暂时连不上数据库了,那就先记录在文件里面。日志写到数据库与文件中是两种算法,但调用方不关心,只负责写就是。

4) 观察者模式。

观察者模式又被称作发布/订阅模式,定义了对象间一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。

对应类图。

应用场景如下。

a. 对一个对象状态的更新,需要其他对象同步更新,而且其他对象的数量动态可变。

b. 对象仅需要将自己的更新通知给其他对象而不需要知道其他对象的细节。

业务场景举例:气象站的故事,气象监控系统必须可以实时跟踪当前的天气状况(温度、湿度、大气压力),并且可以在三种不同设备上显示出来(当前天气状况、天气统计、天气预测)。



转自:http://www.2cto.com/kf/201412/360988.html

作者:冬天的烤地瓜
来源链接:https://blog.csdn.net/abcSunl/article/details/70162749

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/69123.html

标签: 设计模式
分享给朋友: