全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

命令模式和策略模式的区别

发布时间:2023-12-13 22:41:40
发布人:xqq

命令模式(Command Pattern)和策略模式(Strategy Pattern)都是设计模式中的行为型模式,它们用于封装对象中的行为,但它们的主要应用和目的有所不同。

以下是这两种模式的主要特点和区别:

1、目的

命令模式:它的主要目的是将请求封装成对象,从而使你可以参数化其他对象,排队请求或者记录请求日志,以及支持可撤销的操作。

策略模式:它的主要目的是定义一系列算法,并将每个算法封装起来,使它们可以相互替换。这样的模式让算法独立于使用它的客户。

2、结构与关键角色

命令模式:

命令(Command):定义了执行操作的接口。

具体命令(ConcreteCommand):实现了命令接口,包含接收者的引用,调用接收者的相关操作。

请求者(Invoker):持有一个命令对象并在某个时间点调用命令对象的执行方法。

接收者(Receiver):执行与请求相关的操作,实际的操作逻辑。

3、策略模式

策略(Strategy):定义了所有支持的算法的公共接口。

具体策略(ConcreteStrategy):实现了策略接口的具体算法。

上下文(Context):维护一个策略对象的引用,可用于切换具体策略。

4、应用场景

命令模式:适用于需要对请求进行参数化、排队或者记录请求日志,以及支持可撤销操作的场景。例如:GUI 按钮、请求队列、日志请求等。

策略模式:当有一系列的算法,并且这些算法只在行为上有所不同,需要能够动态选择算法时,使用策略模式是很合适的。例如:不同的税收策略、不同的排序策略等。

5、封装的粒度

命令模式:封装的是具体的操作或请求。

策略模式:封装的是一系列的算法或策略。

尽管命令模式和策略模式在某些情况下可能看起来相似,但它们解决的问题和应用的场景是不同的。命令模式注重对请求的封装,而策略模式注重对算法或策略的封装。

it培训

相关文章

命令模式和策略模式的区别

命令模式和策略模式的区别

2023-12-13
nohup命令启动sh文件

nohup命令启动sh文件

2023-12-13
scipy库怎么安装

scipy库怎么安装

2023-12-13
嵌入式培训课程:探索技术的无限可能

嵌入式培训课程:探索技术的无限可能

2023-12-12

最新文章

python培训学校靠谱吗?为什么一定要选择千锋教育

python培训学校靠谱吗?为什么一定要选择千锋教育

2023-12-13
培训学校学java靠谱吗?为什么一定要选择千锋教育

培训学校学java靠谱吗?为什么一定要选择千锋教育

2023-12-13
网络安全哪个培训机构靠谱

网络安全哪个培训机构靠谱

2023-12-13
python培训机构可靠吗?为什么一定要选择千锋教育

python培训机构可靠吗?为什么一定要选择千锋教育

2023-12-13
在线咨询 免费试学 教程领取