命令设计模式

来源:互联网 发布:什么是共和 知乎 编辑:程序博客网 时间:2024/06/06 08:30

前言

将命令请求者和命令接收者进行解耦,以达到对内修改封闭,对外扩展开放的目的。命令接收者就相当于机器,可以执行不同的命令,但是对命令具体执行什么是不知情的。当一个命令接收者可以接收多种命令,且可接收的命令时可扩展时,这种情形下是比较适合应用命令陌生的。

命令模式UML图

  • 命令Command封装命令的执行对象和执行行为。
  • 命令接受者action()调用命令的执行行为, 确不知道具体命令执行情况。

按照命令模式的UML图,可以很容易在代码中设计出命令模式。

应用场景

设计一台遥控器,实现可以控制电灯,也可以控制洗衣机,也可以空调等功能。当收到打开电灯的命令时,室内电灯会被打开,当收到打开空调的命令时,空调会被打开。同时,将来遥控器可能还可以接收控制冰箱的指令。

代码实现

按照命令模式的UML图,很容易进行代码实现的。

public Interface Command{    public void execute();}public class LightOffCommand implements Command{    Light light;    public void execute(){        light.off()    }}public class Receiver{    Command command;    public Receiver(Command command){        this.command = command;    }    public void action(){        command.execute()    }}

代码结构一目了然,我这里只实现了Light命令的代码,其它控制空调等命令的代码跟Light一样。这样讲指令发送者和接受者解耦了。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 偶像,我来了! 开局我就想退出江湖 四合院:从相亲被截胡开始 我能洞察万物信息 超人的赛亚人弟弟 我在高武世界赶尸 印第安人要逆天 遮天:从成为秦始皇开始 苟在仙诡世界 从低维开始创造世界 我在漫威有个女友 我的信息修仙人生 肝在神佛世界 我的室友不对劲 明末狠帝,开局就逼崇祯退位 万界大表哥 四合院之饮食男女 霓裳铁衣曲 亮剑特种兵:谁说我是兵王 人在综影,浪到失联 网购买到假货,反手加购一百万! 生命只剩六十天,我化身祖宗人 我重写了家族历史 乡村中医李茂阳 遮天之凡体崛起 我将立于食物链顶端 科学御兽:智械战宠 问道诸天从笑傲开始 当我有了钞能力 精灵之我有一个精灵芯片 从长生开始肝熟练度 联盟:怎么真让他C了? 岳不群也要模拟人生 这个反派异常慎重 从我开始杀出武道长城 人在吞噬星空,刚加入聊天群 华娱之从演皇帝起家 遮天开始的交易大师 重生北魏末年 时间循环:开局就被六扇门抓捕 从造犯规开始