命令模式

命令模式:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。
命令模式也支持可撤销的操作。

实例解析:
已知一个遥控器有七个可编程的插槽(每个都可以指定到一个不同的家电装置),每个插槽都有对应的开关按钮。这个遥控器还具备一个整体的撤销按钮。
现多家产商开发出一组Java类,这些类可以控制家电的自动化,例如电灯、风扇、热水器、音响设备和其他类似的可控制装置。
请创建一组控制遥控器的API,让每个插槽都能够控制一个或一组装置。请注意,要能够控制目前的装置和任何未来可能出现的装置,这一点很重要。

实例解析:
已知一个遥控器有七个可编程的插槽(每个都可以指定到一个不同的家电装置),每个插槽都有对应的开关按钮。这个遥控器还具备一个整体的撤销按钮。
现多家产商开发出一组Java类,这些类可以控制家电的自动化,例如电灯、风扇、热水器、音响设备和其他类似的可控制装置。
请创建一组控制遥控器的API,让每个插槽都能够控制一个或一组装置。请注意,要能够控制目前的装置和任何未来可能出现的装置,这一点很重要。
设计类图如下:

抽象图
设计类图(全)

在本例中为了更好的说明命令模式,代码将分为两部分放在两个包中。
package simple :只是说明了一个开灯的装置。简单代码
package complex :说明全部的装置。复杂代码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容