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

动易的网站能否静态php 网站开发心得

动易的网站能否静态,php 网站开发心得,小说一键生成动漫,高端网站首页1.命令模式介绍命令模式(Command Pattern)是一种行为设计模式,它将请求或操作封装为对象,使得可以用不同的请求对客户端进行参数化。命令模式的核心思想是将方法调用、请求或操作封装到一个独立的命令对象中,从而使得客…

1.命令模式介绍

命令模式(Command Pattern)是一种行为设计模式,它将请求或操作封装为对象,使得可以用不同的请求对客户端进行参数化。命令模式的核心思想是将方法调用、请求或操作封装到一个独立的命令对象,从而使得客户端与请求的接收者分离。

结构组成:命令模式通常包含以下几个组件:

  1. Command(命令)接口:定义执行操作的接口。
  2. ConcreteCommand(具体命令)类:实现命令接口并定义具体的操作。
  3. Receiver(接收者):实际执行命令的对象,具体实现操作。
  4. Invoker(调用者):持有一个命令对象,调用命令对象执行请求。

类比场景:想象一下,你家里有一个智能灯,你可以按下遥控器上的按钮来打开或关闭灯。

  • 这里遥控器就是Invoker,调用开关灯命令对象执行开关灯请求;
  • 遥控器的每个按钮相当于一个命令对象command,它负责执行具体的开关灯操作;
  • 智能灯就是Receiver,是实际执行开关命令的对象

优缺点分析

  • 优点
    • 解耦:将请求的发送者和接收者解耦,使得命令对象可以灵活地扩展和组合。
    • 可扩展性:可以很容易地添加新的命令,符合开放-关闭原则。
    • 支持撤销操作:可以通过在命令对象中实现撤销功能来支持操作的撤销和重做。
  • 缺点
    • 可能导致类膨胀:对于每个命令都需要定义一个具体命令类,可能会导致类数量增加。
    • 复杂性增加:引入了额外的抽象层,可能导致系统复杂性增加

2. 代码演示

演示场景:使用遥控器控制智能灯的开关。

Command(命令)接口: 定义执行操作的接口。

// Command接口
public interface Command {void execute();
}

ConcreteCommand(具体命令)类:实现命令接口并定义具体的操作。

// ConcreteCommand类:持有接收者对象Light,调用接收者来执行命令
public class LightOnCommand implements Command {private Light light;public LightOnCommand(Light light) {this.light = light;}@Overridepublic void execute() {light.turnOn();}
}public class LightOffCommand implements Command {private Light light;public LightOffCommand(Light light) {this.light = light;}@Overridepublic void execute() {light.turnOff();}
}

Receiver(接收者):实际执行命令的对象,具体实现操作。

// Receiver类
public class Light {public void turnOn() {System.out.println("The light is on");}public void turnOff() {System.out.println("The light is off");}
}

Invoker(调用者):持有命令对象,负责调用命令对象执行请求。

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

客户端代码:

public class CommandClientDemo {public static void main(String[] args) {Light livingRoomLight = new Light();Command lightOn = new LightOnCommand(livingRoomLight);Command lightOff = new LightOffCommand(livingRoomLight);RemoteControl remote = new RemoteControl();remote.setCommand(lightOn);remote.pressButton(); // 输出: The light is onremote.setCommand(lightOff);remote.pressButton(); // 输出: The light is off}
}

对应的类图:

http://www.dtcms.com/a/501928.html

相关文章:

  • 网站开发人员 组织架构天津seo推广软件
  • tp框架做视频网站分子信标探针在线设计网站
  • 哪家做网站性价比高深圳市网站建设做网站
  • 淘宝天猫优惠卷网站建设网站首页被k怎么恢复
  • pc网站制作达孜网站建设
  • wordpress英文站源码佛山网站设计怎么做
  • 做网站常用的语言wordpress新文章加new
  • 制作网站需要什么成本贵阳百度公司建网站电话
  • 公司网站建设哪儿济南兴田德润实惠吗提供视频下载的网站
  • 如何在网上推广自己的产品关键词优化计划
  • 品牌的佛山网站建设价格北京网页设计工资
  • 校园兼职网站建设虚拟机做的网站怎么让外网访问不了网
  • 网站开发人员分配深圳企业建站模板
  • 仿百度文库网站源码商业版dedecms(梦织)系统内核如何引流被动加好友
  • 做设计的公司的网站长沙做网站一般多少钱合适
  • 怎么做网站内部搜索功能seo技术外包公司
  • 滕州网站开发青岛的seo服务公司
  • 做仿牌网站空间自己电脑做电影网站吗
  • 曲周手机网站建设阿里云轻应用服务器 建设网站
  • 明星网站设计论文代备案网站
  • 天津网站建设揭秘杭州搜索引擎排名
  • 潞城市网站建设公司中国自助主做网站有哪些
  • 深圳营销型网站开发摄影网站需求分析
  • 深圳手机端网站建设专业百度商业平台官网
  • 猪八戒网怎么做网站石家庄语音网站建设公司
  • 网站禁止被采集网站服务器有哪几种
  • 网站上面的logo怎么做潍坊市建设工程质量安全监督站网站
  • 建设网站专栏外管局网站上做存量权益登记
  • 天津房地产网站建设网站建设服务ysaigo
  • 河北住房城乡建设厅官方网站无锡建设工程服务中心