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

天津工程建设网官方网站潍坊专业环保设备

天津工程建设网官方网站,潍坊专业环保设备,长沙网站定制开发建设,一体化企业管理软件一、简介 命令模式#xff1a;将请求#xff08;命令#xff09;封装为一个对象#xff0c;这样可以使用不同的请求参数化其他对象#xff08;将不同请求依赖注入到其他对象#xff09;#xff0c;并且能够支持请求#xff08;命令#xff09;的排队执行、记录日志、…一、简介 命令模式将请求命令封装为一个对象这样可以使用不同的请求参数化其他对象将不同请求依赖注入到其他对象并且能够支持请求命令的排队执行、记录日志、撤销等附加控制功能。 二、优点 动作封装解耦发送者跟接受者可扩展性简化和集中错误处理支持撤销和重做功能易于实现组合命令 三、UML类图 四、案例 家里有很多房间有卧室和厨房等用一套灯光管理系统同一管理所有灯的开关。 package mainimport fmttype 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.dnsts.com.cn/news/248812.html

相关文章:

  • 四川建设厅证件查询seo百度站长工具查询
  • 用dw做网站毕业设计海外网站加速免费
  • 网站建设开发实训总结sqlite做网站数据库
  • 商城型网站怎么做优化线上推广方案怎么做
  • 郑州网站建设招标备案后修改网站名称
  • 自己做的网站怎么接入微信潍坊网站制作推广
  • 网站做1920px好吗php网站开发招招聘
  • 一万元做网站wordpress 去空格
  • 网站名称设置seo查询工具
  • 沈阳市住房和城乡建设部网站有多人做网站是个人备案
  • 做产品代理上哪个网站好建立app
  • 做的比较好的小众网站沈阳图书设计公司
  • 连云港企业网站建设公司烟台高端网站建设公司哪家好
  • wordpress hosts陕西新站seo
  • 澄迈住房和城乡建设局网站计算机应用技术专业
  • 网站建设手机端是什么意思自动获取网站缩略图
  • 网站平台建设合同模板企业网站建设版本
  • 电商网站 模板怎么把html文件生成网址
  • 做网站经常用的术语学网站开发在大学
  • 电子政务网站开发山东教育网站开发公司
  • 在什么网站上做精帖wordpress文章采集助手
  • 建站自助网站建设公司营销推广
  • 网站affiliate怎么做深圳网站开发奇辰科技
  • 都江堰做网站景区网站建设 现状
  • 做网页和网站一样吗阿里云怎么wordpress
  • 想建个板栗网站怎么做帮朋友做网站
  • 什么网站做家具出口临沂企业建站系统模板
  • 新建设电影院+网站中国房产网
  • 遨游建站做网站需要交钱吗
  • 商城网站建设目的如果建网站