Java与设计模式(二十八)行为型--命令模式
2018-01-26 19:32
267 查看
一概述
二解决的问题
三模式中的角色
四模式解读
五JDK涉及到的设计模式
六模式总结
优点
缺点
适用场景
2、具体命令(ConcreteCommand)角色:命令接口实现对象,通常它会持有命令的接收者,通过调用接收者相应的功能方法来执行当前命令所要完成的操作。
3、接收者(Receiver)角色:真正执行命令的对象。任何类都可以成为一个接收者,只要它能够实现命令要求实现的相应功能即可。
4、请求者(Invoker)角色:要求命令对象执行相关请求的对象,通常会持有命令对象,可以是多个命令对象。这是客户端真正触发命令并要求命令执行相应操作的入口点。
5、客户端(Client)角色:创建具体的命令对象,并设置命令对象的接收者。注意,这里的客户端并不是我们通常所指的客户端,而是指组装命令和接收者的地方,把这个Client称为装配者或者意义会更明了,真正使用命令的客户端是从Invoker来触发执行的,而不是从这个Client端命令的调用。
2、新的命令可以很容易添加到系统中去。
二解决的问题
三模式中的角色
四模式解读
五JDK涉及到的设计模式
六模式总结
优点
缺点
适用场景
一、概述
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。二、解决的问题
用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。三、模式中的角色
1、命令(Command)角色:定义命令的接口,声明执行的方法。2、具体命令(ConcreteCommand)角色:命令接口实现对象,通常它会持有命令的接收者,通过调用接收者相应的功能方法来执行当前命令所要完成的操作。
3、接收者(Receiver)角色:真正执行命令的对象。任何类都可以成为一个接收者,只要它能够实现命令要求实现的相应功能即可。
4、请求者(Invoker)角色:要求命令对象执行相关请求的对象,通常会持有命令对象,可以是多个命令对象。这是客户端真正触发命令并要求命令执行相应操作的入口点。
5、客户端(Client)角色:创建具体的命令对象,并设置命令对象的接收者。注意,这里的客户端并不是我们通常所指的客户端,而是指组装命令和接收者的地方,把这个Client称为装配者或者意义会更明了,真正使用命令的客户端是从Invoker来触发执行的,而不是从这个Client端命令的调用。
四、模式解读
命令模式的类图如下所示五、JDK涉及到的设计模式
六、模式总结
优点
1、降低了系统耦合度。2、新的命令可以很容易添加到系统中去。
缺点
1、可能会导致系统具有过多的具体命令类适用场景
1、对于大多数请求–响应模式的功能,比较适合使用命令模式,正如命令模式定义说的那样,命令模式对实现记录日志、撤销操作等功能比较方便。相关文章推荐
- Java设计模式_(行为型)_命令模式
- Java设计模式之行为型模式(命令模式)
- JAVA设计模式(15):行为型-命令模式(Command)
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 命令模式(Command) - Java实现
- java设计模式--行为型模式--命令模式
- java设计模式——行为型之命令模式
- Java设计模式_行为型_命令模式_请求与实现相分离
- java-设计模式(行为型)-【命令模式】
- JAVA设计模式(15):行为型-命令模式(Command)
- “设计模式”学习之六:职责链与命令模式(行为型)
- Java设计模式-之Command命令模式
- java 设计模式-命令模式
- JAVA设计模式九--Command(命令模式)
- 十七.行为型设计模式——Command Pattern(命令模式)
- Java设计模式之命令模式
- 设计模式(命令模式)-----行为型模式
- 重学设计模式 - Command(命令)模式 - 行为型
- Java设计模式 Design Pattern:命令模式 Command Pattern
- [导入]C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式.zip(7.56 MB)
- java软件体系设计模式----命令