设计模式(十二):命令模式

2018-07-29  本文已影响0人  Java技术范

01.模式动机

    在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活。

    命令模式可以对发送者和接收者完全解耦,发送者与接收者之间没有直接引用关系,发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求。这就是命令模式的模式动机。

02.模式定义

    命令模式(Command Pattern):将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。

03.模式结构

命令模式包含如下角色:

04.时序图

05.代码示例

这里我们还是以手机为例子,这里的抽象命令我们指定为:

具有该改命令的实现类(命令接受者):

实现的具体命令如下:

发短信的命令 :

播放音乐的命令:

调用者:

展现给客户端:

06.模式分析

命令模式的本质是对命令进行封装,将发出命令的责任和执行命令的责任分割开。

06.模式优点

命令模式的优点

07.模式缺点

命令模式的缺点

08.适用环境

在以下情况下可以使用命令模式:

上一篇 下一篇

猜你喜欢

热点阅读