企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 命令模式 ### 请求以命令的形式包裹在对象中,并传递给调用对象。调用对象寻找可以处理该命令的对象,并把该命令传给相应的对象执行命令。 命令模式是一种特殊的策略模式,体现的时多个策略执行的问题而不是选择的问题。 ### ## 应用场景 ### 只要你认为是命令的地方就可以采用命令模式 日常每个界面、按钮、键盘、事件操作都是命令设计模式 ### ## 角色 ### **抽象命令(Command)**:需要执⾏的所有命令都在这⾥声明 **具体命令(ConcreteCommand)**:定义⼀个接收者和⾏为之间的弱耦合,实现execute()⽅法,负责调⽤接收者的相应操作,execute()⽅法通常叫做执⾏⽅法。 **接受者(Receiver)**:负责具体实施和执⾏⼀个请求,⼲活的⻆⾊,命令传递到这⾥是应该被执⾏的,实施和执⾏请求的⽅法叫做⾏动⽅法 **请求者(Invoker)**:负责调⽤命令对象执⾏请求,相关的⽅法叫做⾏动⽅法 **客户端(Client)**:创建⼀个具体命令(ConcreteCommand)对象并确定其接收者。 ### ![](https://img.kancloud.cn/d8/62/d862e67437f92ede444950d750b7ceaf_1846x1308.png) ### ## 具体实现(**云效代码study-java项目当中设计模式当中有代码案例**) ### **业务需求** ### 实现智能家居,开发⼀个app,可以控制家⾥的家电,⽐如控制空调的开关、加热、制冷 等功能 利⽤命令设计模式,帮⽼王完成这个需求,注意:动作请求者就是⼿机app, 动作的执⾏者是家电的不同功能 ### ![](https://img.kancloud.cn/39/78/397843e72a0abc1866d142c980d07e3a_2361x1499.png) ### ![](https://img.kancloud.cn/39/fb/39fb644e658cffc821d4230cd6ba5d20_2144x1252.png) ### ![](https://img.kancloud.cn/c7/7f/c77ffa4a5286ffcad04595141b7a351f_2294x1275.png) ### ![](https://img.kancloud.cn/2d/8e/2d8ec9776a81eb66ad99c09674367eba_2807x1281.png) ### ![](https://img.kancloud.cn/51/82/51820f5e2d5ac687d1f7c82ae87e0ae6_2807x1262.png) ### ![](https://img.kancloud.cn/51/f7/51f72cbb2c5a320c4b6c2a42c7568f8b_2789x1329.png) ### ![](https://img.kancloud.cn/7c/f2/7cf282a7669262cb5a2c58175d9d76d0_2776x1640.png) ### ![](https://img.kancloud.cn/96/d9/96d950428bd72e01951fe37c7c3cb415_1869x1604.png)