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

做旅游产品的网站有哪些带佣金的旅游推广平台有哪些

做旅游产品的网站有哪些,带佣金的旅游推广平台有哪些,高端网站建设模板,产品seo基础优化命令模式 Command Pattern讲解 概念描述模式结构主要角色模式的UIM类图模式优点模式缺点应用场景实例演示类图代码演示运行结果 概念 命令模式(别名:动作,事务) 命令模式是一种行为设计模式,将一个请求封装为一个对象…

命令模式 Command Pattern讲解

  • 概念
  • 描述
    • 模式结构
      • 主要角色
      • 模式的UIM类图
      • 模式优点
      • 模式缺点
      • 应用场景
      • 实例演示
        • 类图
        • 代码演示
        • 运行结果

概念

命令模式(别名:动作,事务)
命令模式是一种行为设计模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。

描述

命令模式的本质封装请求
在命令模式中,我们通常会定义一个抽象的Command接口,其中声明了一个execute()方法。具体的命令类(ConcreteCommand)将实现这个execute()方法,将一个发送者(Invoker)的请求转换为一个或多个接收者(Receiver)的操作。发送者并不知道接收者的具体实现,它只需要触发命令对象的execute()方法即可

模式结构

主要角色

1、命令接口(Command Interface):定义了一个统一的执行操作的接口,通常包含一个execute()方法。
2、具体命令(Concrete Command):实现了命令接口,负责具体的业务逻辑处理。它通常会持有对接收者(Receiver)的引用。
3、接收者(Receiver):真正知道如何执行命令的实体。任何类都可能成为一个接收者。
4、调用者/请求者(Invoker/Client):负责调用命令对象的execute()方法,它并不关心命令是如何被执行的,也不知道具体的接收者是谁。

模式的UIM类图

在这里插入图片描述

模式优点

1、在命令模式中,请求者(Invoker)不直接与接收者(Receiver)交互,即请求者(Invoker)不包含接收者(Receiver)的引用,因此彻底消除了彼此之间的耦合。
2、命令模式满足“开-闭原则”。如果增加新的具体命令和该命令的接受者,不必修改调用者的代码,调用者就可以使用新的命令对象;反之,如果增加新的调用者,不必修改现有的具体命令和接受者,新增加的调用者就可以使用已有的具体命令。
3、由于请求者的请求被封装到了具体命令中,那么就可以将具体命令保存到持久化的媒介中,在需要的时候,重新执行这个具体命令。因此,使用命令模式可以记录日志。
4、使用命令模式可以对请求者的“请求”进行排队。每个请求都各自对应一个具体命令,因此可以按一定顺序执行这些具体命令。

模式缺点

  • 类数量增加:引入了大量的命令类,可能会导致类的数量急剧增加,增加了系统的复杂度。
  • 设计复杂度:在包含大量命令和复杂撤销操作的系统中,设计和管理命令模式可能会比较复杂。

应用场景

  • UI事件处理:在图形界面系统中,用户的各种操作(如点击按钮)可以被封装为命令对象,然后由控制器统一处理。
  • 日志与事务:通过命令模式记录用户的操作日志,便于后续审计或回滚事务。
  • 宏命令:将多个命令组合成一个宏命令,实现批量操作。
  • 支持撤销/重做功能:命令模式天然适合于实现软件中的撤销和重做功能。

实例演示

题目:模拟带控制开关的小电器。该电器上有四个开关,两个一组,其中一组负责打开、关闭小电器上的照明灯,另一组负责打开、关闭小电器上的摄像头

类图

在这里插入图片描述

代码演示
package task2;public interface Command {public void execute();}package task2;public class Light {public void on() {System.out.println("灯找了");}public void off() {System.out.println("灯灭了");}}package task2;public class OnLightCommand implements Command {public Light light;public OnLightCommand(Light light) {// TODO Auto-generated constructor stubthis.light=light;}public void execute() {light.on();}}package task2;public class OffLightCommand implements Command {public Light light;public OffLightCommand(Light light) {// TODO Auto-generated constructor stubthis.light=light;}public void execute() {light.off();}}package task2;public class Camera {public void on(){System.out.println("摄像头开了");}public void off(){System.out.println("摄像头灭了");}}package task2;public class OnCameraCommand implements Command {public Camera camera;public OnCameraCommand(Camera camera){this.camera=camera;}public void execute() {camera.on();}}package task2;public class OffCameraCommand implements Command {public Camera camera;public OffCameraCommand(Camera camera){this.camera=camera;}public void execute(){camera.off();}}package task2;public class Invoker {public Command command;public void setCommand(Command command) {this.command = command;}public void executeCommand(Command command) {command.execute();}}

测试类

package task2;public class Test {public static void main(String[] args) {Light light = new Light();Command command1 = new OnLightCommand(light);Command command2 = new OffLightCommand(light);Invoker invoker = new Invoker();invoker.setCommand(command1);invoker.executeCommand(command1);invoker.setCommand(command2);invoker.executeCommand(command2);Camera camera = new Camera();Command command3 = new OnCameraCommand(camera);Command command4 = new OffCameraCommand(camera);invoker.setCommand(command3);invoker.executeCommand(command3);invoker.setCommand(command4);invoker.executeCommand(command4);}}

在这个例子中,Command 是一个接口,定义了 execute 方法。OnLightCommand OffLightCommand OnCameraCommand OffCameraCommand 是 Command 接口的具体实现.Invoker 是请求者,它持有一个 Command 对象,并提供了获取命令并执行命令。

运行结果

在这里插入图片描述
博主用心写,读者点关注;互动传真情,知识不迷路

http://www.dinnco.com/news/33058.html

相关文章:

  • wap开头的网站专业培训大全
  • 网站建设简介淄博广州营销课程培训班
  • wordpress公司模板seo排名快速刷
  • 甘肃手机版建站系统价格百家号权重查询
  • 安徽省港航建设投资集团网站旺道网站排名优化
  • 网站开发必须要做前端吗广告买卖网
  • 网站收录代做如何建立网址
  • 横沥镇做网站济南百度竞价
  • 郑州制作网站价格友情链接地址
  • 龙陵网站建设找小网站的关键词
  • 如何做实验室网站河南百度关键词优化排名软件
  • 孝感建设局网站seo外链优化
  • 宝山网站建设如何制作网页设计
  • 免费网站推广在线观看厦门网站到首页排名
  • 网站建设各单位强化沟通协作百度投放广告收费标准
  • 做网站编写互联网销售可以卖什么产品
  • 手机网店开店网站网络平台销售
  • 网站建设制作费用预算表b2b平台运营模式
  • 可画设计软件下载网站seo搜索引擎的原理是什么
  • 怎样做网站全屏代码sem运营是什么意思
  • 做汽车网可参考网站哪个公司网站设计好
  • 西安优秀的定制网站建设公司哪家好论坛推广技巧
  • 个人网站备案要多久最有效的线上推广方式
  • 武汉制作公司网站什么软件可以免费发广告
  • 怎么制作网站开发设计b2b商务平台
  • 项目立项流程上海seo优化服务公司
  • 电视直播网站怎么做网站流量查询平台
  • 网上商城平台建设池州网站seo
  • 班级网站建设活动方案东莞seo公司
  • 网站结构说明临沂网站建设方案服务