命令模式(Command)

一、核心思想

命令模式是一个对象行为模式。主要解决在软件构件过程中行为发起者和行为构建者之间的紧耦合的问题。

将一个发起者请求封装成一个对象,将发起者和执行者分开,通过命令的方式来实现。

包含三个类:

请求发起者Invoker:

请求执行者Receiver:

命令MyCommand:

关系图:

todo

 

codes:

 
  1. public interface Command {  
  2.     public void execute();  
  3. }  
 
  1. public class MyCommand implements Command {  
  2.   
  3.     private Receiver receiver;  
  4.       
  5.     public MyCommand(Receiver receiver) {  
  6.         this.receiver = receiver;  
  7.     }  
  8.   
  9.     @Override  
  10.     public void execute() {  
  11.         receiver.action();  
  12.     }  
  13. }  
 
  1. public class Receiver {  
  2.     public void action(){  
  3.         System.out.println("command received!");  
  4.     }  
  5. }  
 
  1. public class Invoker {  
  2.       
  3.     private Command command;  
  4.       
  5.     public Invoker(Command command) {  
  6.         this.command = command;  
  7.     }  
  8.   
  9.     public void action(){  
  10.         command.execute();  
  11.     }  
  12. }  
 
  1. public class Test {  
  2.   
  3.     public static void main(String[] args) {  
  4.         Receiver receiver = new Receiver();  
  5.         Command cmd = new MyCommand(receiver);  
  6.         Invoker invoker = new Invoker(cmd);  
  7.         invoker.action();  
  8.     }  
  9. }  

 

二、何时使用

命令模式的目的就是达到命令的发出者和执行者之间解耦

凡是需要将调用和实现分开处理的情况都可以使用命令模式。

 

三、java中的应用

AWT界面事件处理

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值