设计模式——18命令模式(Command)

简介: 命令模式(Command)

18、命令模式(Command)
命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。

Invoker是调用者(司令员),Receiver是被调用者(士兵),MyCommand是命令,实现了Command接口,持有接收对象,看实现代码:
[java] view plaincopy

  1. public interface Command {
  2. public void exe();
  3. }
    [java] view plaincopy
  4. public class MyCommand implements Command {
  5. private Receiver receiver;
  6. public MyCommand(Receiver receiver) {
  7. this.receiver = receiver;
  8. }
  9. @Override
  10. public void exe() {
  11. receiver.action();
  12. }
  13. }
    [java] view plaincopy
  14. public class Receiver {
  15. public void action(){
  16. System.out.println("command received!");
  17. }
  18. }
    [java] view plaincopy
  19. public class Invoker {
  20. private Command command;
  21. public Invoker(Command command) {
  22. this.command = command;
  23. }
  24. public void action(){
  25. command.exe();
  26. }
  27. }
    [java] view plaincopy
  28. public class Test {
  29. public static void main(String[] args) {
  30. Receiver receiver = new Receiver();
  31. Command cmd = new MyCommand(receiver);
  32. Invoker invoker = new Invoker(cmd);
  33. invoker.action();
  34. }
  35. }
    输出:command received!

这个很哈理解,命令模式的目的就是达到命令的发出者和执行者之间解耦,实现请求和执行分开,熟悉Struts的同学应该知道,Struts其实就是一种将请求和呈现分离的技术,其中必然涉及命令模式的思想!

目录
相关文章
|
12天前
|
设计模式 存储 算法
「全网最细 + 实战源码案例」设计模式——命令模式
命令模式(Command Pattern)是一种行为型设计模式,将请求封装成独立对象,从而解耦请求方与接收方。其核心结构包括:Command(命令接口)、ConcreteCommand(具体命令)、Receiver(接收者)和Invoker(调用者)。通过这种方式,命令的执行、撤销、排队等操作更易扩展和灵活。 适用场景: 1. 参数化对象以操作。 2. 操作放入队列或远程执行。 3. 实现回滚功能。 4. 解耦调用者与接收者。 优点: - 遵循单一职责和开闭原则。 - 支持命令组合和延迟执行。 - 可实现撤销、恢复功能。 缺点: - 增加复杂性和类数量。
49 14
「全网最细 + 实战源码案例」设计模式——命令模式
|
5月前
|
设计模式 存储 算法
Java设计模式-命令模式(16)
Java设计模式-命令模式(16)
|
6月前
|
设计模式 存储 Java
【十二】设计模式~~~行为型模式~~~命令模式(Java)
文章详细介绍了命令模式(Command Pattern),这是一种对象行为型模式,用于将请求封装成对象,实现请求发送者与接收者的解耦,从而降低系统耦合度、提高灵活性,并支持命令的排队、记录、撤销和恢复操作。通过案例分析、结构图、时序图和代码示例,文章展示了命令模式的组成部分、实现方式和应用场景,并讨论了其优点、缺点和适用情况。
|
7月前
|
设计模式 JavaScript API
js设计模式【详解】—— 命令模式
js设计模式【详解】—— 命令模式
68 6
|
8月前
|
设计模式 Java uml
必知的技术知识:JAVA【设计模式】命令模式
必知的技术知识:JAVA【设计模式】命令模式
39 0
|
8月前
|
设计模式 Java
Java设计模式之命令模式详解
Java设计模式之命令模式详解
|
8月前
|
设计模式
命令模式-大话设计模式
命令模式-大话设计模式
|
8月前
|
设计模式
设计模式之命令模式
设计模式之命令模式
|
9月前
|
设计模式 存储 Java
【设计模式】JAVA Design Patterns——Command(事务模式)
【设计模式】JAVA Design Patterns——Command(事务模式)
|
9月前
|
设计模式 存储 Java
【搞懂设计模式】命令模式:从遥控器到编程的妙用!
【搞懂设计模式】命令模式:从遥控器到编程的妙用!
89 0

热门文章

最新文章