命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。
这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。我们看看关系图:
Invoker是调用者(司令员),Receiver是被调用者(士兵),MyCommand是命令,实现了Command接口,持有接收对象
●Command接口:
public interface Command {
public void exe();
}
●实现类:
public class MyCommand implements Command {
private Receiver receiver;
public MyCommand(Receiver receiver) {
this.receiver = receiver;
}
@Override
public void exe() {
receiver.action();
}
}
●被调用类:
public class Receiver {
public void action(){
System.out.println("command received!");
}
}
●调用类:
public class Invoker {
private Command command;
public Invoker(Command command) {
this.command = command;
}
public void action(){
command.exe();
}
}
●测试:
public class Test {
public static void main(String[] args) {
Receiver receiver = new Receiver();
Command cmd = new MyCommand(receiver);
Invoker invoker = new Invoker(cmd);
invoker.action();
}
}
●输出:command received!
这个很好理解,命令模式的目的就是达到命令的发出者和执行者之间解耦,实现请求和执行分开。
熟悉Struts的同学应该知道,Struts其实就是一种将请求和呈现分离的技术,其中必然涉及命令模式的思想!
---------------------
作者:panzihao_beijing
来源:CSDN
原文:https://blog.csdn.net/PanZiHao_BeiJing/article/details/80429893
版权声明:本文为博主原创文章,转载请附上博文链接!
相关推荐
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在软件工程中,这种模式常用于解耦发出命令的对象(调用者)与...
在这个“设计模式作业——用命令模式java语言编写的烧烤店”项目中,我们将探讨如何运用命令模式来构建一个模拟烧烤店的系统。命令模式是一种行为设计模式,它将请求封装为一个对象,使得我们可以参数化不同的请求、...
在《设计模式——可复用面向对象软件的基础》这本书中,作者Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides(合称GoF)首次提出了23种面向对象设计模式。这些模式涵盖了不同设计场景,如创建型模式、...
命令模式是Java设计模式中的一种常见模式,主要用于将命令的发出者和执行者之间解耦,实现请求和执行分开。 命令模式的定义是将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。它的主要目的是...
书名: 设计模式可复用面向对象软件的基础 英文原书名: Design Patterns:Elements of Reusable Object-Oriented software 作者: Erich Gamma 等 译者: 李英军 马晓星 蔡敏 刘建中 书号: 7-111-07575-7 页码: 254 定价...
- 命令模式(Command):将一个请求封装为一个对象,以便使用不同的请求、队列或者日志请求,支持可撤销的操作。 - 解释器模式(Interpreter):给定一种语言,定义它的文法表示,并提供一个解释器来处理该语言中...
本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与应用,特别是针对刘伟教授的相关课程的课后习题及模拟试题的解答。 设计模式分为三大类:创建型、结构型和行为型模式。...
2. 命令发出者和执行者分离——Activiti 将任务委托给 CommandInterceptor 来执行,而不是直接让 CommandExecutor 执行,这是命令模式解耦的体现。 责任链模式的特性在 Activiti 中的体现: 1. 将请求放入职责链上...
14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 16. 观察者模式(Observer Pattern) 17. 解释器模式(Interpreter Pattern) 18. 中介者模式(Mediator Pattern) 19. 职责链模式(Chain of ...
本文将深入探讨两种重要的设计模式——命令模式和责任链模式,并通过Java代码实例来阐述它们的应用和实现。 首先,我们来看**命令模式**。命令模式的核心思想是将请求封装为一个对象,从而可以将命令参数化、支持...
这里我们将深入探讨两个重要的设计模式——桥接模式和命令模式。 **桥接模式(Bridge Pattern)** 桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地进行变化。在Java中,桥接模式通常...
本文实例讲述了Python设计模式之命令模式原理与用法。...设计模式——命令模式 命令模式(Command Pattern):将请求封装成对象,从而使可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作.
在本文中,我们将深入探讨设计模式中的命令模式,并结合实际案例——WCS(Warehouse Control System,仓库控制系统)的堆垛机控制,来详细介绍其详细设计与实现。命令模式是一种行为设计模式,它将请求封装为一个...
这份名为“设计模式PPT——25种设计模式详解”的资料,显然是一个深入探讨设计模式的教程,它通过PDF格式对25种主要的设计模式进行了详尽的阐述。 首先,我们要理解设计模式的基本概念。设计模式不是代码,而是一种...
3. **行为型模式**:包括责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、观察者模式...
- **3.7 Command模式**:命令模式将一个请求封装为一个对象,从而使用户可以用不同的请求来参数化客户端。 - **3.8 Visitor模式**:访问者模式定义一个作用于某对象结构中的各元素的操作。 - **3.9 Chain of ...
命令模式(Command) 命令模式是一种行为型设计模式,它将请求封装为一个对象,从而使你可以用不同的请求来参数化客户端。该模式允许请求队列化、日志记录和推迟执行。文章中通过“MM发号施令”的例子,展示了命令...