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

华为网站建设目标wordpress auto spinner

华为网站建设目标,wordpress auto spinner,网站编程基础,东莞微信网站引言 使用命令模式#xff0c;我们可以将执行特定任务的对象与调用该方法的对象解耦。 核心思想 命令模式的核心思想是将请求封装成一个对象#xff0c;从而使请求的发起者和请求的执行者解耦。 请求的发起者只需要知道如何创建命令对象并将其传递给请求者#xff0c;而不需… 引言 使用命令模式我们可以将执行特定任务的对象与调用该方法的对象解耦。 核心思想 命令模式的核心思想是将请求封装成一个对象从而使请求的发起者和请求的执行者解耦。 请求的发起者只需要知道如何创建命令对象并将其传递给请求者而不需要知道命令对象的具体实现细节。 命令模式还支持可撤销操作因为命令对象可以保存执行前的状态并在需要时恢复状态。这样可以通过撤销命令对象来撤销之前的操作。 适用场景 1. 需要将请求发送者和接收者解耦的场景。 命令模式可以将请求封装成对象从而使得请求的发送者和接收者之间解耦使得系统更加灵活。 2. 需要支持撤销和重做操作的场景。 命令模式可以将请求封装成对象并提供撤销和重做操作从而使得系统更加灵活和可靠。 3. 需要支持事务操作的场景。 命令模式可以将多个请求封装成一个事务从而保证事务的原子性和一致性。 4. 需要支持日志和审计功能的场景。 命令模式可以将请求封装成对象并记录请求的执行情况从而支持日志和审计功能。 5. 需要支持队列请求的场景。 命令模式可以将请求封装成对象并将请求放入队列中从而支持队列请求的场景。 案例实践 假设我们有一个简单的计算器它可以执行加、减、乘、除四种操作。 我们可以使用命令模式来实现这个计算器将每个操作封装成一个命令对象然后将命令对象传递给计算器从而实现不同的操作。 整体步骤 第一步我们定义一个命令接口它包含一个execute方法第二步我们定义四个具体的命令类分别对应加、减、乘、除四种操作第三步我们定义一个计算器类它包含一个命令队列和一个执行命令的方法第四步使用这些类来实现一个简单的计算器 第一步我们定义一个命令接口它包含一个execute方法 class Command {execute() {} }第二步我们定义四个具体的命令类分别对应加、减、乘、除四种操作 加法操作AddCommand类继承Command class AddCommand extends Command {constructor(receiver, value) {super();this.receiver receiver;this.value value;}execute() {this.receiver.add(this.value);} }减法操作SubCommand类继承Command class SubCommand extends Command {constructor(receiver, value) {super();this.receiver receiver;this.value value;}execute() {this.receiver.sub(this.value);} }乘法操作MulCommand类继承Command class MulCommand extends Command {constructor(receiver, value) {super();this.receiver receiver;this.value value;}execute() {this.receiver.mul(this.value);} }除法操作DivCommand类继承Command class DivCommand extends Command {constructor(receiver, value) {super();this.receiver receiver;this.value value;}execute() {this.receiver.div(this.value);} }其中每个命令类都包含一个接收者对象和一个操作值execute方法会调用接收者对象的相应方法来执行操作。 第三步我们定义一个计算器类它包含一个命令队列和一个执行命令的方法 // 计算器类 class Calculator {constructor() {this.commands [];this.current 0;} // addCommand方法用于将命令对象添加到命令队列中addCommand(command) {this.commands.push(command);} // executeCommand方法用于执行当前命令executeCommand() {this.commands[this.current].execute();this.current;} // undo方法用于撤销上一个命令undo() {this.commands[this.current - 1].execute();this.current--;} // redo方法用于重做上一个命令redo() {this.commands[this.current].execute();this.current;} }其中addCommand方法用于将命令对象添加到命令队列中executeCommand方法用于执行当前命令undo方法用于撤销上一个命令redo方法用于重做上一个命令。 第四步使用这些类来实现一个简单的计算器 const calculator new Calculator(); const receiver {value: 0,add: function (value) {this.value value;console.log(Add ${value}, result: ${this.value});},sub: function (value) {this.value - value;console.log(Sub ${value}, result: ${this.value});},mul: function (value) {this.value * value;console.log(Mul ${value}, result: ${this.value});},div: function (value) {this.value / value;console.log(Div ${value}, result: ${this.value});}, };const addCommand new AddCommand(receiver, 10); const subCommand new SubCommand(receiver, 5); const mulCommand new MulCommand(receiver, 2); const divCommand new DivCommand(receiver, 4);calculator.addCommand(addCommand); calculator.addCommand(subCommand); calculator.addCommand(mulCommand); calculator.addCommand(divCommand);具体执行及其结果 calculator.executeCommand(); // Add 10, result: 10 calculator.executeCommand(); // Sub 5, result: 5 calculator.executeCommand(); // Mul 2, result: 10 calculator.executeCommand(); // Div 4, result: 2.5calculator.undo(); // Div 4, result: 10 calculator.undo(); // Mul 2, result: 20 calculator.undo(); // Sub 5, result: 25 calculator.undo(); // Add 10, result: 35calculator.redo(); // Add 10, result: 10 calculator.redo(); // Sub 5, result: 5 calculator.redo(); // Mul 2, result: 10 calculator.redo(); // Div 4, result: 2.5
http://www.yutouwan.com/news/387305/

相关文章:

  • AWS免费套餐做网站可以吗网站建设一般多少钱新闻
  • 帮企业做网站赚钱吗全球网站建设服务商
  • 怎样保证网站的安全性林州网站建设制作
  • 长春做商业平台网站京润珍珠企业网站优化
  • 网站开发一个人可以完成吗做系统那个网站好
  • 梧州高端网站建设服务网站域名包括哪些
  • 做优惠券网站苏州优化有限公司
  • 增城网站公司电话建设招标网网站
  • 昆明云南微网站制作哪家好网络技术有限公司是什么
  • 如何提升网站的搜索排名网站优化可以自己做么
  • 如何在电商网站做市场调研东营网站制作公司
  • 湖南营销型网站建设磐石网络北京餐饮设计公司
  • div做网站定制平台有哪些
  • 怎么做qq刷赞等网站网站短时间怎么做权重
  • 网站外链怎么购买网站网页设计如何选
  • 新开网站seo搭建网站平台需要多少钱
  • 百度站长论坛福州精美个人网站建设公司
  • 网站做背景不显示单位网站备案要等多久
  • 资讯类网站模板asp秦皇岛市人事考试网
  • 江西安福县建设局网站金融网站建设案例
  • 宝山品牌网站建设口碑好的合肥网站建设
  • wordpress客户端建站时间轴网站模板
  • go做的网站好看的企业网站首页
  • 大宗商品价格查询网站网页设计培训传智教育
  • 做教育培训网站的公司wordpress主题整合
  • dw网站建设怎么放在网上无锡软件外包公司排名
  • 有哪些做汽车变速箱的门户网站网站除了域名还要什么
  • 自助做网站傻瓜式自助建站工具商城类网站主要分为哪些模块
  • h5成品网站东莞网站开发哪家强
  • 网站建设软件有哪些连云港网站建设 连云港网站制作