当前位置: 首页 > news >正文

垫江网站建设哪家好宁波网站设计服务

垫江网站建设哪家好,宁波网站设计服务,网络规划设计师资格证,万建站南昌命令模式应用嗨#xff0c;您好#xff01; 今天#xff0c;我将与您分享一种非常出色的编程设计模式。 它有很多用法#xff0c;是我的最爱之一。 编程设计模式命令具有多种用例。 在这篇文章中#xff0c;我们将看到如何实现来自现实世界的东西。 我们将使用电子汽车钥… 命令模式应用 嗨您好 今天我将与您分享一种非常出色的编程设计模式。 它有很多用法是我的最爱之一。 编程设计模式命令具有多种用例。 在这篇文章中我们将看到如何实现来自现实世界的东西。 我们将使用电子汽车钥匙来打开关闭门启用禁用警报打开关闭车库门或打开和关闭汽车的引擎盖和行李箱。 我将向您展示的示例是一个非常普通的示例因此您随时可以回到这里并在您的应用程序中使用它。 UML命令模式 如您所知我总是通过在UML图上显示类图来启动项目。 这有助于我们以一种精巧紧凑的方式对其进行概述。 解释细节编程设计 我们的客户是法拉利车主FerrariCleint。 它有一个CarKey。 CarKey具有可通过命令配置的通用MicroShipInvolker。 命令OpenDoorCommand本身具有要执行的动作DoorAction。 CarKey可以配置do和undo命令。 NullObjectCommand属于Null对象设计模式在这里也将使用它。 现在让我们在代码中查看实现细节。 指挥与微舰 NullObjectCommand在这里用于避免空指针异常并且只要未定义任何命令就什么都不执行。 public interface Command {void execute(); } public class MicroChip {protected Command[] onCommands;protected Command[] offCommands;public MicroChip(int commandQuantity) {onCommands new Command[commandQuantity];offCommands new Command[commandQuantity];Command nullObjecCommand new NullObjectCommand();for (int i 0; i commandQuantity; i) {onCommands[i]nullObjecCommand;offCommands[i]nullObjecCommand;}}public void configureCommand(int position, Command on, Command off){onCommands[position]on;offCommands[position]off;}public void executeOnCommand(int position){onCommands[position].execute();}public void executeOffCommand(int position){offCommands[position].execute();}protected class NullObjectCommand implements Command{Overridepublic void execute() {// NULL-OBJECT-PATTERN}} }具体的命令和动作 在这里我们可以看到动作和命令的具体实现。 public class Door {public void on(){System.out.println(Opening car doors...);}public void off(){System.out.println(Closing car doors...);} } public class OpenDoorCommand implements Command {private Door door;public OpenDoorCommand(Door door) {this.door door;}Overridepublic void execute() {door.on();} } public class CloseDoorCommand implements Command {private Door door;public CloseDoorCommand(Door door) {this.door door;}Overridepublic void execute() {door.off();} }通用微舰 如您在这里看到的此实现或此MicroShip可以容纳所需数量的命令并且可以在可能需要的任何情况下重用。 在此MicroShip波纹管中我只实现了上面的OpenDoorCommand和CloseDoorCommand因此您可以看到它的强大功能。 像我一样您可以实现其他命令。这里最酷的事情是执行和撤消操作的能力。 创建所需数量的命令并执行所需的动作。 这种图案的简单和美丽使我着迷。 public class CarKey {private MicroChip microChip;public CarKey() {final int commandQuantity 5;microChip new MicroChip(commandQuantity);final Hood hood new Hood();final OpenHoodCommand openHoodCmd new OpenHoodCommand(hood);final CloseHoodCommand closeHoodCmd new CloseHoodCommand(hood);microChip.configureCommand(0, openHoodCmd, closeHoodCmd);final Door door new Door();final OpenDoorCommand openDoorCmd new OpenDoorCommand(door);final CloseDoorCommand closeDoorCmd new CloseDoorCommand(door);microChip.configureCommand(1, openDoorCmd, closeDoorCmd);final Garage garage new Garage();final OpenGarageCommand openGarageCmd new OpenGarageCommand(garage);final CloseGarageCommand closeGarageCmd new CloseGarageCommand(garage);microChip.configureCommand(2, openGarageCmd, closeGarageCmd);final Trunk trunk new Trunk();final OpenTrunkCommand openTrunkCmd new OpenTrunkCommand(trunk);final CloseTrunkCommand closeTrunkCmd new CloseTrunkCommand(trunk);microChip.configureCommand(3, openTrunkCmd, closeTrunkCmd);final Alarm alarm new Alarm();final EnableAlarmCommand enableAlarmCmd new EnableAlarmCommand(alarm);final DisableAlarmCommand disableAlarmCmd new DisableAlarmCommand(alarm);microChip.configureCommand(4, enableAlarmCmd, disableAlarmCmd);}public void openHood(){microChip.executeOnCommand(0);}public void closeHood(){microChip.executeOffCommand(0);}public void openDoor(){microChip.executeOnCommand(1);}public void closeDoor(){microChip.executeOffCommand(1);}public void openGarage(){microChip.executeOnCommand(2);}public void closeGarage(){microChip.executeOffCommand(2);}public void openTrunk(){microChip.executeOnCommand(3);}public void closeTrunk(){microChip.executeOffCommand(3);}public void enableAlarm(){microChip.executeOnCommand(4);}public void disableAlarm(){microChip.executeOffCommand(4);}}法拉利客户 最后我们可以看到这种漂亮的设计模式的用法和功能。 在此示例中我实现了多个命令来向您展示它的外观。 public class FerrariClient {public static void main(String[] args) {final CarKey ferrariSwitchbladeKey new CarKey();ferrariSwitchbladeKey.openHood();ferrariSwitchbladeKey.openGarage();ferrariSwitchbladeKey.openTrunk();ferrariSwitchbladeKey.openDoor();ferrariSwitchbladeKey.enableAlarm();System.out.println(-------------------------------);ferrariSwitchbladeKey.closeHood();ferrariSwitchbladeKey.closeGarage();ferrariSwitchbladeKey.closeTrunk();ferrariSwitchbladeKey.closeDoor();ferrariSwitchbladeKey.disableAlarm();} } 就这样。 希望你喜欢 翻译自: https://www.javacodegeeks.com/2014/08/command-design-pattern-applied.html命令模式应用
http://www.pierceye.com/news/850944/

相关文章:

  • 大学网站建设考核办法永春网站设计
  • 哪个设计网站赚钱百度地图网页版进入
  • 网站备案号不存在100m的网站 数据库
  • 网站空间管理平台网站模版 优帮云
  • 网站开发的比较备案期间 需要关闭网站吗
  • 做网站 怎么推广上海市企业服务云十问十答
  • 怎么做一种网站为别人宣传wordpress query_posts()
  • 网站的运营和维护专业做网站官网
  • 详细论述制作网站的步骤做网站需求 后期方便优化
  • 蒙icp备 网站建设学校网站建设管理
  • 做免费外贸网站册域名网站大全免黄
  • 祈网网站建设制作网站如何赚钱
  • 最讨厌网站门户类网站的主页设计
  • 国家建设环保局网站网站做的好赚钱吗
  • 如何设置网站服务器做标签的网站
  • 网站建设高端培训学校做网站交易平台
  • 公司网站建设收费优化网站排名解析推广
  • 昆明快速建站模板汽车网站建设多少钱
  • 网站注销主体注销广州联享网站建设公司怎么样
  • 中山seo建站新手建站教程报价单
  • 台州制作网站软件陈坤做直播在哪个网站
  • 北湖区网站建设公司企业主题wordpress 含演示数据
  • 网站建设简历自我评价做招聘信息的网站有哪些内容
  • 怎么和其它网站做友情链接网络营销师证怎么考
  • 百度推广要自己做网站吗做的视频传到哪个网站好
  • 个人建设门户网站 如何备案网站推广服务报价表
  • 广州企业网站建设哪家服务好西安家政公司网站建设
  • 住房与城乡建设部网站 黑龙江wordpress 采集系统
  • 阜阳网站建设云平台玉溪建设局门户网站
  • 网站建设什么原因最主要怎么制作网站首页