1. 关注常识网首页
  2. 科普知识

no和off哪个是开关(设计模式19-Command模式-智能家居)

ON是打开,OFF是关闭,ON和OFF是很常见的按钮,不仅在汽车上,在很多日常使用的电器都会看到,在汽车灯光拨杆上会有ON和OFF,ON是打开,OFF是关闭。开...

ON是打开,OFF是关闭,ON和OFF是很常见的按钮,不仅在汽车上,在很多日常使用的电器都会看到,在汽车灯光拨杆上会有O...更多no和off哪个是开关的这个问题,以及大家所关心的设计模式19-Command模式-智能家居的内容,欢迎大家继续分享关注常识网。

on和off哪个表示“开”

no和off哪个是开关

ON是打开,OFF是关闭,ON和OFF是很常见的按钮,不仅在汽车上,在很多日常使用的电器都会看到,在汽车灯光拨杆上会有ON和OFF,ON是打开,OFF是关闭。开关电源是利用现代电力电子技术,控制开关管开通和关断的时间比率,维持稳定输出电压的一种电源,开关电源一般由脉冲宽度调制(PWM)控制IC和MOSFET构成。

no和off哪个是开关拓展阅读

no和off哪个是开关(设计模式19-Command模式-智能家居)

设计模式19-Command模式-智能家居

在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合——比如需要对行为进行“记录、撤销/重做(undo/redo)、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?

这种情况下就可以使用命令模式,命令模式即将一个请求(行为)封装为一个对象,从而使你可用不同的请求对客户端进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。

UML图:

no和off哪个是开关(设计模式19-Command模式-智能家居)

举个例子,当前智能家居很火热,假设我们要设计一个手机app,可以通过按动上边的控制按钮控制卧室和厨房的灯,还能控制卧室中的音响的开关。app即是“动作的请求者”,而灯和音响就是“动作的执行者”。当我们按动app上的某个开关后,app就可以把相关的指令发送到我们的指定的家电上。这之中app和家电之间是解耦的,我们完全可以通过设置,添加、修改或删除其它的家电控制功能,而不需要修改app的代码。

no和off哪个是开关(设计模式19-Command模式-智能家居)

代码如下:

include <vector> using namespace std; class Command { public: virtual void execute = 0; }; class NoCommand : public Command { public: void execute {}; }; class Light { public: Light(string location) { m_sLocation = location; } void on { printf(&34;, m_sLocation.c_str); } void off { printf(&34;, m_sLocation.c_str); } private: string m_sLocation; }; class LightOffCommand : public Command { public: LightOffCommand(string location) :m_Light(location) {} void execute { m_Light.off; } private: Light m_Light; }; class LightOnCommand : public Command { public: LightOnCommand(string location) :m_Light(location) {} void execute { m_Light.on; } private: Light m_Light; }; class Stereo { public: Stereo(string location) { m_sLocation = location; } void on { printf(&34;, m_sLocation.c_str); } void off { printf(&34;, m_sLocation.c_str); } void setCD { printf(&34;, m_sLocation.c_str); } void setDVD { printf(&34;, m_sLocation.c_str); } void setRadio { printf(&34;, m_sLocation.c_str); } void setVolume(int volume) { printf(&34;, m_sLocation.c_str, volume); } private: string m_sLocation; }; class StereoOnWithCDCommand : public Command { public: StereoOnWithCDCommand(string location) :m_Stereo(location) {} void execute { m_Stereo.on; m_Stereo.setCD; m_Stereo.setVolume(11); } private: Stereo m_Stereo; }; class StereoOffCommand : public Command { public: StereoOffCommand(string location) :m_Stereo(location) {} void execute { m_Stereo.off; } private: Stereo m_Stereo; }; class RemoteControl { public: RemoteControl { for (int i = 0; i < 7; i++) { Command* noCommandOn = new NoCommand; m_OnCommands.push_back(noCommandOn); Command* noCommandOff = new NoCommand; m_OffCommands.push_back(noCommandOff); } } ~RemoteControl { for (int i = 0; i < 7; i++) { delete m_OnCommands.at(i); delete m_OffCommands.at(i); } m_OnCommands.clear; m_OffCommands.clear; } void setCommand(int slot, Command* pOnCommand, Command* pOffCommand) { delete m_OnCommands.at(slot); m_OnCommands.at(slot) = pOnCommand; delete m_OffCommands.at(slot); m_OffCommands.at(slot) = pOffCommand; } void onButtonWasPushed(int slot) { m_OnCommands.at(slot)->execute; } void offButtonWasPushed(int slot) { m_OffCommands.at(slot)->execute; } private: vector<Command*> m_OnCommands; vector<Command*> m_OffCommands; }; int main { RemoteControl remoteControl; LightOffCommand* pLivingRoomLightOff = new LightOffCommand(&34;); LightOffCommand* pKitchenLightOff = new LightOffCommand(&34;); LightOnCommand* pLivingRoomLightOn = new LightOnCommand(&34;); LightOnCommand* pKitchenLightOn = new LightOnCommand(&34;); StereoOnWithCDCommand* pStereoOnWithCD = new StereoOnWithCDCommand(&34;); StereoOffCommand* pStereoOff = new StereoOffCommand(&34;); remoteControl.setCommand(0, pLivingRoomLightOn, pLivingRoomLightOff); remoteControl.setCommand(1, pKitchenLightOn, pKitchenLightOff); remoteControl.setCommand(2, pStereoOnWithCD, pStereoOff); remoteControl.onButtonWasPushed(0); remoteControl.offButtonWasPushed(0); remoteControl.onButtonWasPushed(1); remoteControl.offButtonWasPushed(1); remoteControl.onButtonWasPushed(2); remoteControl.offButtonWasPushed(2); return 0; }

运行结果:

Living Room light is on Living Room light is off Kitchen light is on Kitchen light is off Living Room stereo is on Living Room stereo is set for CD input Living Room Stereo volume set to 11 Living Room stereo is offno和off哪个是开关(设计模式19-Command模式-智能家居)
以上就是关于no和off哪个是开关(设计模式19-Command模式-智能家居)的所有内容,希望对你有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人,并不代表关注常识网立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容(包括不限于图片和视频等),请邮件至379184938@qq.com 举报,一经查实,本站将立刻删除。

联系我们

在线咨询:点击这里给我发消息

微信号:CHWK6868

工作日:9:30-18:30,节假日休息