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

关于1-6月网站建设工作通报北京百度推广客服电话多少

关于1-6月网站建设工作通报,北京百度推广客服电话多少,asp网站优化访问速度,做财经直播网站文章目录 Java 设计模式之命令模式概述UML代码实现简单实现复杂实现 Java 设计模式之命令模式 概述 命令模式(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可…

文章目录

  • Java 设计模式之命令模式
    • 概述
    • UML
    • 代码实现
      • 简单实现
      • 复杂实现

Java 设计模式之命令模式

概述

  • 命令模式(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
  • 敏捷开发原则告诉我们,不要为代码添加基于猜测的、实际不需要的功能。如果不清楚一个系统是否需要命令模式,一般就不要着急去实现它,事实上,在需要的时候通过重构实现这个模式并不困难,只有在真正需要如撤销/恢复操作等功能时,把原来的代码重构为命令模式才有意义。

UML

在这里插入图片描述

  • Command:命令接口,定义执行操作的通用接口。
  • ConcreteCommand:具体命令类,实现具体的命令操作,持有接受者对象。
  • Receiver:接收者累,实际执行操作的对象。
  • Invoker:调用者,触发命令的对象。

代码实现

简单实现

定义命令接口:

public interface Command {void execute();
}

定义具体命令类:

public class LightOffCommand implements Command {private Light light;public LightOffCommand(Light light) {this.light = light;}@Overridepublic void execute() {light.turnOff();}
}
public class LightOnCommand implements Command {private Light light;public LightOnCommand(Light light) {this.light = light;}@Overridepublic void execute() {light.turnOn();}
}

定义接收者类:

public class Light {public void turnOn() {System.out.println("开灯");}public void turnOff() {System.out.println("关灯");}
}

定义调用者类:

public class RemoteControl {private Command command;public void setCommand(Command command) {this.command = command;}public void pressButton() {command.execute();}
}

使用:

public class Client {public static void main(String[] args) {Light light = new Light();Command lightOn = new LightOnCommand(light);Command lightOff = new LightOffCommand(light);RemoteControl control = new RemoteControl();control.setCommand(lightOn);control.pressButton();control.setCommand(lightOff);control.pressButton();}
}

输出:

开灯
关灯

复杂实现

定义抽象命令类:

abstract class Command {protected RoastCook receiver;public Command(RoastCook receiver) {this.receiver = receiver;}abstract void execute();
}

定义接收者类:

public class RoastCook {public void bakeMeet() {System.out.println("烤肉");}public void bakeFish() {System.out.println("烤鱼");}
}

定义具体命令类:

public class RoastFishCommand extends Command {public RoastFishCommand(RoastCook receiver) {super(receiver);}@Overridevoid execute() {receiver.bakeFish();}
}
public class RoastMeatCommand extends Command {public RoastMeatCommand(RoastCook receiver) {super(receiver);}@Overridevoid execute() {receiver.bakeMeet();}
}

定义调用者类:

public class Waiter {private ArrayList<Command> orders = new ArrayList<>();private Command command;// 下单public void setOrder(Command command) {String className = command.getClass().getSimpleName();if (className.equals("RoastFishCommand")) {System.out.println("下单:" + "烤鱼");} else {System.out.println("下单:" + "烤肉");}orders.add(command);}// 取消订单public void cancelOrder(Command command) {String className = command.getClass().getSimpleName();if (className.equals("RoastFishCommand")) {System.out.println("取消:" + "烤鱼");} else {System.out.println("取消:" + "烤肉");}orders.remove(command);}// 通知public void notifyCommand() {for (Command command : orders) {command.execute();}}
}

使用:

public class Client {public static void main(String[] args) {RoastCook receiver = new RoastCook();Command roastMeatCommand = new RoastMeatCommand(receiver);Command roastFishCommand1 = new RoastFishCommand(receiver);Command roastFishCommand2 = new RoastFishCommand(receiver);Command roastFishCommand3 = new RoastFishCommand(receiver);Waiter waiter = new Waiter();waiter.setOrder(roastFishCommand1);waiter.setOrder(roastFishCommand2);waiter.setOrder(roastMeatCommand);waiter.setOrder(roastFishCommand3);waiter.cancelOrder(roastFishCommand2);waiter.notifyCommand();}
}

输出:

下单:烤鱼
下单:烤鱼
下单:烤肉
下单:烤鱼
取消:烤鱼
烤鱼
烤肉
烤鱼
http://www.hkea.cn/news/596278/

相关文章:

  • wordpress 分栏seo怎么优化简述
  • php网站开发 多少钱推广方案策划
  • 芜湖做网站公司广州seo好找工作吗
  • 做网站找客户百度竞价推广公司
  • 深圳网站建设怎么办互联网营销的优势
  • 课程网站开发背景网站推广的几种方法
  • 商城网站建设模板一份完整的营销策划方案
  • 推广网站建设网站权重查询工具
  • t型布局网站怎么做建设网官方网站
  • 哪个建设网站推广竞价托管公司
  • 网站建设傲seo网站是什么意思
  • 卢氏住房和城乡建设厅网站聚名网
  • 山东网站建设电话长沙靠谱的关键词优化
  • 山东营销型网站ip网站查询服务器
  • 什么网站上做奥数题企业培训课程清单
  • 龙岩优化seo是什么意思
  • 外贸网站建设源码软文怎么做
  • 文章列表页wordpress宁波seo资源
  • 获取网站访客qq 原理百度投诉中心人工电话
  • 企业网站制作查询百度电话怎么转人工
  • 杭州专业网站建设怎样创建网站
  • 网站建设报价表格式淘宝关键词优化技巧
  • 高端网站建设系统百度网盘登录入口官网
  • ps做网站顶部江苏网络推广公司
  • 源码做网站手机网站百度关键词排名
  • 网站关键词分隔网站链接提交
  • 福永营销型网站多少钱中国最新消息今天
  • 做网站4000-262-263网站排名优化软件有哪些
  • 网站双链接怎么做网络舆情监测平台
  • 企业网站建设制作百度网盘下载app