命令模式和策略模式

2019-03-02  本文已影响0人  奔跑地蜗牛

定义

命令模式是指:通过把一个请求封装成一个对象,从而可以使用不同的请求例如命令等将客户端参数化;可以将请求排队或者记录请求日志,可以支持请求撤销操作;命令模式是一个对象行为模式,别名为动作模式或者事务模式;
命令模式在将一个请求封装成一个对象后,无需了解请求激活的动作或者接收该请求后处理的细则;
这是一种两台机器之间通信性质的模式,命令模式解耦了发送者和接受者之间的联系,发送者调用一个操作,接收者执行该操作,发送者无需知道接收者对于该操作的任何接口。

结构图

单请求单接收

命令模式1.png

接口说明:

单请求多接收

命令模式-单请求多接收.png

其中将多个命令封装到一个List中,从而实现一个请求将有多个接受者进行处理;

请求支持撤销动作

请求支持撤销动作.png

-其中在Command方法中加入撤销动作undo(),即可实现该命令的撤销;

场景

命令模式非常类似“请求-响应”模式,因此它比较适用于日志记录,撤销操作,请求队列等场景,如以下等场景:

策略模式

定义

策略模式定义了一系列的算法,并且将每个算法封装成一个对象,同时这些算法还可以相互替代

结构图

策略模式.png

说明:

策略模式和命令模式区别

上一篇 下一篇

猜你喜欢

热点阅读