资讯专栏INFORMATION COLUMN

命令模式

王陆宽 / 1524人阅读

摘要:描述一个对象可以发一些命令让接受者帮助它执行,命令的发起者和接收者不必耦合,两者的沟通通过命令的传递进行沟通。场景某个经常会指点江山,让为他写代码,做报告,身为只能执行命令。

描述:一个对象可以发一些命令让接受者帮助它执行,命令的发起者和接收者不必耦合,两者的沟通通过命令的传递进行沟通。

场景:某个boss经常会指点江山,让coder为他写代码,做报告,身为coder只能执行命令。

实现:

抽象命令

interface Command {
    void coding();
    void report();
}

定义一个coder,负责执行commad

class Coder {
    void exe(String cmd) {
        System.out.println("I am coder, get the cmd: " + cmd);
    }
}

具体的命令, 这个命令的执行是coder去执行的

class MyCommand implements Command {
    Coder coder;
    @Override
    public void coding() {
        coder.exe("coding");
    }
    @Override
    public void report() {
        coder.exe("report");
    }
}

定义一个boss,专门指点江山,命令的执行细节他不需要知道

class Boss {
    Command cmd;
    Boss(Command cmd) {
        this.cmd = cmd;
    }
    void coding() {
        cmd.coding();
    }
    void report() {
        cmd.report();
    }
}

客户端调用

public class CommandDemo {
    public static void main(String[] args) {
        Command cmd = new MyCommand();
        Boss boss = new Boss(cmd);
        boss.coding();
        boss.report();
    }

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64008.html

相关文章

  • 每天一个设计模式命令模式

    摘要:作者按每天一个设计模式旨在初步领会设计模式的精髓,目前采用和两种语言实现。该对象执行命令。命令模式按钮参考设计模式和开发实践如何实现命令模式 作者按:《每天一个设计模式》旨在初步领会设计模式的精髓,目前采用javascript和python两种语言实现。诚然,每种设计模式都有多种实现方式,但此小册只记录最直截了当的实现方式 :) 原文地址是:《每天一个设计模式之命令模式》 欢迎关注个人...

    paney129 评论0 收藏0
  • 每天一个设计模式命令模式

    摘要:作者按每天一个设计模式旨在初步领会设计模式的精髓,目前采用和两种语言实现。该对象执行命令。命令模式按钮参考设计模式和开发实践如何实现命令模式 作者按:《每天一个设计模式》旨在初步领会设计模式的精髓,目前采用javascript和python两种语言实现。诚然,每种设计模式都有多种实现方式,但此小册只记录最直截了当的实现方式 :) 原文地址是:《每天一个设计模式之命令模式》 欢迎关注个人...

    lixiang 评论0 收藏0
  • 设计模式(6)命令模式(讲解+应用)

    摘要:目录命令模式为什么使用命令模式命令模式应用实例命令模式命令模式在软件系统中,行为请求者与行为实现者通常呈现一种紧耦合。下篇更代理模式,侧重下其和委托形式的区别和实际应用。 目录 命令模式 为什么使用命令模式 命令模式应用实例 命令模式 命令模式:在软件系统中,行为请求者与行为实现者通常呈现一种紧耦合。但在某些场合,比如要对行为进行记录、撤销/重做、事务等处理,这种无法抵御变化的紧耦...

    3fuyu 评论0 收藏0
  • JavaScript设计模式(七):命令模式

    摘要:支持撤销,队列,宏命令等功能。宏命令宏命令一组命令集合命令模式与组合模式的产物发布者发布一个请求,命令对象会遍历命令集合下的一系列子命令并执行,完成多任务。 showImg(https://segmentfault.com/img/bVbu3CN?w=800&h=600); 命令模式:请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相...

    lixiang 评论0 收藏0

发表评论

0条评论

王陆宽

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<