您的位置:首页 > 编程语言 > Java开发

Java与设计模式(二十八)行为型--命令模式

2018-01-26 19:32 267 查看
一概述

二解决的问题

三模式中的角色

四模式解读

五JDK涉及到的设计模式

六模式总结
优点

缺点

适用场景

一、概述

命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。

二、解决的问题

用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。

三、模式中的角色

1、命令(Command)角色:定义命令的接口,声明执行的方法。

2、具体命令(ConcreteCommand)角色:命令接口实现对象,通常它会持有命令的接收者,通过调用接收者相应的功能方法来执行当前命令所要完成的操作。

3、接收者(Receiver)角色:真正执行命令的对象。任何类都可以成为一个接收者,只要它能够实现命令要求实现的相应功能即可。

4、请求者(Invoker)角色:要求命令对象执行相关请求的对象,通常会持有命令对象,可以是多个命令对象。这是客户端真正触发命令并要求命令执行相应操作的入口点。

5、客户端(Client)角色:创建具体的命令对象,并设置命令对象的接收者。注意,这里的客户端并不是我们通常所指的客户端,而是指组装命令和接收者的地方,把这个Client称为装配者或者意义会更明了,真正使用命令的客户端是从Invoker来触发执行的,而不是从这个Client端命令的调用。

四、模式解读

命令模式的类图如下所示



五、JDK涉及到的设计模式



六、模式总结

优点

1、降低了系统耦合度。

2、新的命令可以很容易添加到系统中去。

缺点

1、可能会导致系统具有过多的具体命令类

适用场景

1、对于大多数请求–响应模式的功能,比较适合使用命令模式,正如命令模式定义说的那样,命令模式对实现记录日志、撤销操作等功能比较方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: