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

三亚网站开发哪家好wordpress 菜单小工具

三亚网站开发哪家好,wordpress 菜单小工具,网站商城建设合同范本,贵州省建设厅门户网站一、简介 命令模式:将请求(命令)封装为一个对象,这样可以使用不同的请求参数化其他对象(将不同请求依赖注入到其他对象),并且能够支持请求(命令)的排队执行、记录日志、…

一、简介

命令模式:将请求(命令)封装为一个对象,这样可以使用不同的请求参数化其他对象(将不同请求依赖注入到其他对象),并且能够支持请求(命令)的排队执行、记录日志、撤销等(附加控制)功能。

二、优点

  • 动作封装
  • 解耦发送者跟接受者
  • 可扩展性
  • 简化和集中错误处理
  • 支持撤销和重做功能
  • 易于实现组合命令

三、UML类图

请添加图片描述

四、案例

家里有很多房间,有卧室和厨房等,用一套灯光管理系统同一管理所有灯的开关。

package mainimport "fmt"type Light interface {On()Off()
}type KitchenLight struct {
}func NewKitchenLight() *KitchenLight {return &KitchenLight{}
}func (*KitchenLight) On() {fmt.Println("Kitchen light is on")
}func (*KitchenLight) Off() {fmt.Println("Kitchen light is off")
}type LivingRoomLight struct {
}func NewLivingRoomLight() *LivingRoomLight {return &LivingRoomLight{}
}func (*LivingRoomLight) On() {fmt.Println("Living room light is on")
}func (*LivingRoomLight) Off() {fmt.Println("Living room light is off")
}type Command interface {Execute()Undo()
}type LightOnCommand struct {Lights []Light
}func NewLightOnCommand(lights []Light) LightOnCommand {return LightOnCommand{Lights: lights}
}func (loc *LightOnCommand) Execute() {for _, light := range loc.Lights {light.On()}
}func (loc *LightOnCommand) Undo() {for _, light := range loc.Lights {light.Off()}
}type LightOffCommand struct {Lights []Light
}func NewLightOffCommand(lights []Light) LightOffCommand {return LightOffCommand{Lights: lights}
}func (loc *LightOffCommand) Execute() {for _, light := range loc.Lights {light.Off()}
}func (loc *LightOffCommand) Undo() {for _, light := range loc.Lights {light.On()}
}func main() {kitchenLight := NewKitchenLight()livingRoomLight := NewLivingRoomLight()lightOnCommand := NewLightOnCommand([]Light{kitchenLight, livingRoomLight})lightOnCommand.Execute()lightOnCommand.Undo()lightOffCommand := NewLightOffCommand([]Light{kitchenLight, livingRoomLight})lightOffCommand.Execute()lightOffCommand.Undo()
}

五、对比

命令模式与策略模式的区别:在策略模式中,不同的策略具有相同的目的、不同的实现、互相之间可以替换。比如,BubbleSort、SelectionSort都是为了实现排序的,只不过一个是用冒泡排序算法来实现的,另一个是用选择排序算法来实现的。而在命令模式中,不同的命令具有不同的目的,对应不同的处理逻辑,并且互相之间不可替换。

http://www.yayakq.cn/news/388591/

相关文章:

  • 阿里云网站建设 部署与发布考试wordpress如何增加轮播
  • 旅游网站建设的结论third 原创wordpress企业主题
  • 做搜狗手机网站长尾表格比较多得网站这么做响应式
  • 汽修网站建设免费假怀孕单子在线制作图片
  • 17zwd一起做网站项目建设方案
  • 南通网站建设排名公司哪家好网站seo外包
  • 30天网站建设实录素材微网站访问量
  • 企业网站建设方案书网络营销课程收获
  • 北京社招网站自己的网站没有域名
  • 大连百姓网免费发布信息网站本土建站工作室
  • 服装网站建设规定wordpress 页面平铺
  • 建站公司外贸涿州二康
  • 佛山伦教网站设计上海建章汽车服务有限公司
  • 专业做网站+上海网站分析 实例
  • 泰兴网站设计discuz应用中心退款
  • 贵阳手机网站建设费用郑州seo顾问热狗网
  • 3d模型免费素材网站做外汇看哪些网站数据
  • 做网站 套用模板之后用什么改dm建站系统
  • 万户网站制作电影网站建设模板
  • 信誉比较好的网上做任务的网站编辑网站绑定
  • 装饰网站建设多少钱商城定制开发
  • 省交通建设质安监督局网站网站建设公司官方网站
  • 易签到网站开发设计学做招投标的网站有哪些
  • 简述网站开发的几个步骤南宁网络推广外包
  • 免费网站安全软件大全免费下载安装上海建设工程 U盘登录哪个网站
  • 河南住房和城乡建设部网站注册个人公司流程及费用
  • 做网站优化的教程模拟电脑游戏的app
  • 省博物馆网站建设网站建设公司财务预算
  • 网站主体负责人必须是法人吗wordpress 发布文章主动推送百度
  • 网站平台建设的实训报告南宁企业官网seo