【软考】设计模式-命令模式
来源:互联网 发布:网络蔬菜超市 编辑:程序博客网 时间:2024/06/10 05:24
Invoker是下达命令
Command是抽象的命令, ConcreteCommand1和ConcreteCommand2是具体要实现什么样的命令
ConverteCommand1和ConcreteCommand2 从Receiver中获得执行命令的具体方法
比如:
Invoker发出命令:我要关灯
ConverteCommand1从 Receiver中获得关灯的方法,在ConverteCommand1 实现Receiver中的关灯方法。
然后灯被关。
我想不到什么方式比在实践中学习更好了,给大家上题吧
(1)首先我们看到下面的类是 implements Command ,所以 Command 的一个接口 , 第一个空填: interface Command
(2)(3)我们看 LightOnCommand和 LightOffCommand 类里 都有, Light light ,构造函数里light做参数,所以 他们是依赖关系(依赖被指向的做参数,做返回值还记得吗),所以我们可以确定 ,light就是图中的Receiver,LightOnCommand和LightOffCommand 从light中获得具体的开灯关灯方法
所以这两个空填: light.on() , light.off()
(4)(5)我们看RemoteControl类,类里有方法setCommand ,所以他是Invoker ,是告诉 Command 我要执行什么命令的类。
首先,在RemoteControl中实例化了两个数组,因为应题目要求我们要有7个捏槽
onCommands是实例化的对象的地址,指向数组
我们看setCommand里传了3个参数,只有slot没有用到,因为我们实例化的数组,所以可想slot表示的是第几个捏槽,即堆中的 0,1,2…6 ,而且我们要把开关第几个灯的要求告诉实现的命令,让他们去执行
所以这两个空是:
onCommands[slot] , offCommands[slot]
(6)(7)开关灯的按钮已经按下去了, 我们可以看主方法,主方法里把哪个屋子(LivingRoomLight/kitchenLight)的哪个等(0/1)已经定义的很清楚了,在这里执行按下去开关灯的按钮,所以是onCommands[slot].execute() offCommands[slot].execute()
我们把slot传进去之后要告诉他该干什么,即execute
或者说,Invoker和Command是依赖关系,Command应该在Invoker中做参数或返回值
欢迎大家一起交流!
- 【软考】设计模式-命令模式
- 软考--设计模式
- 【软考】——重温设计模式☞命令模式
- 软考-设计模式总结
- 软考设计模式之观察者模式
- 【软考】设计模式-原型模式
- 【软考】设计模式-桥接模式
- 【软考】【设计模式】设计模式Java汇总
- 软考复习--设计模式总结
- 软考之设计模式(策略)
- 软考下午题之设计模式
- 【软考】设计模式(上午题)
- 【软考之路】设计模式总结
- 【软考】设计模式-模板方法
- 《软考设计模式之题型》
- 《软考设计模式之武功秘籍》
- 软考总结— 设计模式之状态模式
- 【Dongle】【软考】【设计模式】单例模式
- mybatis中动态sql常用的标签
- chrome、webkit内核的各种浏览器、新版IE(微软Edge)浏览器惊天大bug集合
- Ubuntu下搭建samba服务
- OpenStack创建2台VM之间的DHCP服务设置
- Codeforces Round #411 (Div. 2) B. 3-palindrome
- 【软考】设计模式-命令模式
- 简析搜索引擎对于作弊的处罚及判断方式
- ARM的7种工作模式、37个通用寄存器、CPSR程序状态寄存器
- Android之SharePreference
- 项目风险管理·十三
- Android 获取系统信息 手机号码 所在国家码
- 打印10000以内的回文数字
- Spring mvc 视图解析器 ContentNegotiatingViewResolver 源码分析
- maven打包时候将依赖jar包打入