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

怎么用php做网站方案公司网站模板

怎么用php做网站方案,公司网站模板,企业如何做网站推广,七牛云域名一、简介 命令模式:将请求(命令)封装为一个对象,这样可以使用不同的请求参数化其他对象(将不同请求依赖注入到其他对象),并且能够支持请求(命令)的排队执行、记录日志、…

一、简介

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

二、优点

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

三、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.hkea.cn/news/201617/

相关文章:

  • 请人做网站要多少网络事件营销
  • 网站页脚有什么作用厦门seo哪家强
  • 东莞百度提升优化优化推广网站推荐
  • 查企业网站有哪些站长统计app软件
  • 做a高清视频在线观看网站济源新站seo关键词排名推广
  • 刚做的网站怎么搜索不出来百度seo收录软件
  • 视频拍摄app站长工具seo综合查询广告
  • 新闻单位建设网站的意义武汉seo推广优化
  • 低价网站公司软文怎么写
  • 东莞市建设公共交易中心网站百度官网首页
  • 如何建立的网站能争钱优化营商环境 助推高质量发展
  • 做百度网站营销型网站建设排名
  • 网站域名被黑国际新闻最新消息战争
  • 苏州网站开发公司济南兴田德润厉害吗网络自动推广软件
  • 广药网站建设试卷株洲最新今日头条
  • 网站建设管理考核办法微信推广平台怎么做
  • 网站新闻模块代码网络推广有哪些常见的推广方法
  • 合肥大型网站如何推广普通话
  • 高端网站制作软件怎么样推广自己的店铺和产品
  • 无障碍浏览网站怎么做关键词seo排名优化推荐
  • wordpress 247seo推广系统
  • 做深圳门户网站起什么名字好泰州seo外包公司
  • 网站视频上传怎么做百度站长平台论坛
  • wordpress农业模板下载小时seo
  • 做网站语言排名2018发帖推广哪个平台好
  • 销氪crmseo入门讲解
  • 蒙阴哪有做淘宝网站的钓鱼网站制作教程
  • 网站如何做导航条下拉菜单怎么做百度网页
  • 网站开发都做什么平台推广精准客源
  • 网站建设共享ip宁波seo搜索引擎优化