首页 > 其他 > 详细

设计模式:命令模式

时间:2020-11-02 10:08:44      阅读:29      评论:0      收藏:0      [点我收藏+]
技术分享图片

模式描述

封装请求为一个命令对象,调用者传递命令,接收者执行命令,对命令进行抽象,实现请求者与实现者进行解耦。

为什么研究

使用命令模式,可以很好的进行系统解耦,使系统易于维护。

类图

技术分享图片

说明

1、Invoker:命令调用者,用来给接收者传达命令
2、Receiver:命令接受者,用来执行命令操作
3、Command:抽象命令,对一组命令进行抽象
4、ConcreteCommand:具体的命令

实现

1、命令类:
public interface Command {
void doCommand();
}
2、具体命令类:
public class ConcreteCommand implements Command{
private Receiver receiver;
public ConcreteCommand(Receiver receiver){
this.receiver = receiver;br/>}
@Override
public void doCommand() {
receiver.doOper();
}
}
3、接收者:
public class Receiver {
public void doOper(){
System.out.println("执行命令执行了.......");
}
}
4、命令传达者:
public class Invoker {
private Command command;
public Invoker(){}
public void setCommand(Command command){
this.command = command;
}
public void invoke(){
command.doCommand();
}
}
5、客户端:
public class Client {
public static void main(String[] args) {
Receiver receiver = new Receiver();
Command command = new ConcreteCommand(receiver);
Invoker invoker = new Invoker();
invoker.setCommand(command);
invoker.invoke();
}
}

总结

1、命令者模式使系统松耦合,易于维护
2、当命令类太多时,就不适合用命令设计模式,可以考虑其他的解决方案

设计模式:命令模式

原文:https://blog.51cto.com/xxdeelon/2545891

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!