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

如何提高网站浏览量公司网站 制作

如何提高网站浏览量,公司网站 制作,做网站收款支付宝接口,中铁建设集团门户网登录网站命令模式 一、概述二、经典举例三、代码示例#xff08;Go#xff09;四、总结 一、概述 ​ 顾名思义#xff0c;命令模式其实和现实生活中直接下命令的动作类似#xff0c;怎么理解这个命令是理解命令模式的关键#xff01;#xff01;#xff01;直接说结论是很不负责… 命令模式 一、概述二、经典举例三、代码示例Go四、总结 一、概述 ​ 顾名思义命令模式其实和现实生活中直接下命令的动作类似怎么理解这个命令是理解命令模式的关键直接说结论是很不负责的行为因此我将会结合之后的例子来向你介绍它来帮助你更好的理解而不是仅仅死记硬背它。这样你会在以后需要的时候想起它并且通过这个命令模式帮助你解决问题。 二、经典举例 遥控器 ​ 现在你手里有一个遥控器上面有很多的按钮可以对应到生活中很对例子如电视遥控器、空调遥控器等等使用起来非常的简单我们只需要按下对应功能的按钮就可以不需要知道怎么做的比如说开关空调调整温度等等。在这个场景中按下按钮其实就会给设备发送一个命令请先记住这个场景下的命令后面会用到 点餐 ​ 你到餐厅点餐服务员会将菜单递给你然后你会挑选菜单上的菜然后服务就会记下来交给厨师厨师收到后就会开始准备这些菜。在这个过程中也是存在命令的可选择的命令来自于菜单然后你下达的命令会由服务员记录在小本本上然后传达给做菜的厨师。 小结 ​ 说完上面两个场景现在我们来总结一下这两个场景中的命令有什么共性。在你继续往下查看结果之前我建议你先自己思考一下然后再去下面的结果。 ​ 有一天你突然心血来潮想通过遥控器控制空调放音乐这可能就没办法做到了为什么呢因为你手中的遥控器上就没有这个命令呀。同样的道理你有一天去平日里最爱的餐厅里想点一道满汉全席服务员看了直摇头他不知所措了为啥呢因为菜单上没有这道菜。 ​ 通过上面的假设我想你应该知道了这个命令的特点了 这些 “命令” 都是提前预设好的因此数量也是有限的且无法做到每个命令都很灵活 命令其实就是这样也应该这样它不是一个模糊的东西它的含义非常明确且简单。 当然你如果有其他的理解也希望你能够在评论区不吝分享。 三、代码示例Go ​ 示例代码主要是围绕命令所做的抽象命令的方法应该尽可能的减少入参或者没有入参。下面我们就遥控器的场景来书写示例代码 package mainimport fmt// Command 命令对像 type Command interface {Execute() }// TurnOnLightCommand 开灯命令 type TurnOnLightCommand struct {Light *Light }// Execute 执行命令 func (c TurnOnLightCommand) Execute() {c.Light.On() }// TurnOffLightCommand 关灯命令 type TurnOffLightCommand struct {Light *Light }func (c TurnOffLightCommand) Execute() {c.Light.Off() }// TurnOnFanCommand 开风扇命令 type TurnOnFanCommand struct {Fan *Fan }func (c TurnOnFanCommand) Execute() {c.Fan.On() }// TurnOffFanCommand 关风扇命令 type TurnOffFanCommand struct {Fan *Fan }func (c TurnOffFanCommand) Execute() {c.Fan.Off() }// ConcreteCommand 宏命令可以执行多个命令 type ConcreteCommand struct {Commands []Command }func (c ConcreteCommand) Execute() {for _, command : range c.Commands {command.Execute()} }// Light 灯 type Light struct {Name string }func (l Light) On() {fmt.Println(l.Name on) }func (l Light) Off() {fmt.Println(l.Name off) }// Fan 风扇 type Fan struct {Name string }func (f Fan) On() {fmt.Println(f.Name on) }func (f Fan) Off() {fmt.Println(f.Name off) }// SimpleRemoteControl 简单的遥控器只有一个按钮 type SimpleRemoteControl struct {Commands Command }// ButtonWasPressed 按钮被按下 func (rc SimpleRemoteControl) ButtonWasPressed() {rc.Commands.Execute() }// NormalRemoteControl 普通的遥控器有多个按钮 type NormalRemoteControl struct {Commands []Command }// ButtonWasPressed 按钮被按下 func (rc NormalRemoteControl) ButtonWasPressed(index int) {rc.Commands[index].Execute() }func main() {// 简单的遥控器fmt.Println(简单的遥控器)light : Light{Name: Living Room}remoteControl : SimpleRemoteControl{Commands: TurnOnLightCommand{Light: light}}remoteControl.ButtonWasPressed()// 普通的遥控器fmt.Println(普通的遥控器)fan : Fan{Name: Living Room}normalRemoteControl : NormalRemoteControl{Commands: []Command{TurnOnLightCommand{Light: light}, TurnOffLightCommand{Light: light}, TurnOnFanCommand{Fan: fan}, TurnOffFanCommand{Fan: fan}}}normalRemoteControl.ButtonWasPressed(0)normalRemoteControl.ButtonWasPressed(1)normalRemoteControl.ButtonWasPressed(2)normalRemoteControl.ButtonWasPressed(3)// 通过宏让一个按钮可以执行多个命令fmt.Println(通过宏让一个按钮可以执行多个命令)normalRemoteControl.Commands []Command{ConcreteCommand{Commands: []Command{TurnOnLightCommand{Light: light}, TurnOnFanCommand{Fan: fan}}}, ConcreteCommand{Commands: []Command{TurnOffLightCommand{Light: light}, TurnOffFanCommand{Fan: fan}}}}normalRemoteControl.ButtonWasPressed(0) }分析 ​ 代码中最核心的是抽象了 Command 通过这个接口的 Execute() 方法不关心命令究竟是如何执行的毕竟它仅仅只是命令而已。 ​ 有了这个接口我们就可以在此基础之上拓展很多新的应用场景出来就比如示例中的宏命令——由几个命令组合而成除此之外还有可以有很多其他拓展希望你们能够自己亲自去实现这样能够提升自己的理解。 可拓展的应用场景 撤销/回滚功能 这个很好理解其实就是在 Command 接口中增加一个 Undo() 方法然后再把执行过的命令放入栈中进行命令回滚时只需要执行出栈命令的 Undo() 方法即可。 远程执行 既然命令已经被抽象成了对象那么也就和对象一样可以被序列化变成可传输的字符串然后传输到远端去或者持久化到数据库中。 其他 四、总结 ​ 其实命令模式并不难最最最核心的正入它的名字一样是对业务 “命令” 的抽象因此也有些地方把这个设计模式成为 调用封装 。 ​ 有了上面的理解后我们来体会一下此模式的定义相信你会有更深刻的理解 命令模式将 “请求” 封装成对象以便使用不同的请求、队列或日志来参数化其他对象。命令模式支持可撤销的操作 ​ 以上便是此文章的全部内容了希望你能有收获如果内容存在错误的地方也欢迎指出
http://www.pierceye.com/news/306754/

相关文章:

  • 中堂仿做网站个人网站设计论文道客巴巴
  • 怎么用ps做网站效果图24什么网站建设
  • 网站开发技术有网站建设方案 pdf
  • 网站建设教程浩森宇特福州医院网站建设公司
  • 怎样在网站上做超链接网站商城是用什么框架做的
  • 网站建设增城wordpress新文章类型
  • 广州市招投标中心官网上海网站关键词优化
  • 很多网站开发没有框架如何制作的长沙旅游景点大全排名
  • 云南网站推广的目的做动画的网站有哪些
  • 网站建设公司在哪里找资源模拟建设网站
  • 如何盗用网站模板哈尔滨公告
  • 管理咨询网站焦作专业做网站公司哪家好
  • 在国内做跨境电商怎么上外国网站网站不收录
  • 网站介绍ppt怎么做屏蔽网站ip
  • it公论 是建立在什么网站wordpress搬迁数据库连接失败
  • 南县建设局网站营销型网站开发流程包括
  • 有关应用网站申请免费网站空间
  • 二手书交易网站开发现状营销型网站建设推荐乐云seo
  • 山西网站建设怎么样seo优化网站多少钱
  • 网站建设设计模板磁力链最佳的搜索引擎
  • 单位外部网站建设价格哪些网站可以做视频直播
  • 广州黄埔网站建设公司国外做调灵风暴的网站
  • 珠海附近交友平台软件广州网站优化推广方案
  • cgi做网站如何将网站加入百度图 推广
  • 小贷做网站深圳手机app软件开发
  • 上海平台网站建设费用页面模板不存在怎么办
  • 西安网站排名公司上海工商网查询官网
  • 网站建设协调机制建网站 可以看到访客吗
  • 学生做网站的工作室南和住房和城乡建设局网站
  • 潍坊网站制作案例广东十大网站建设排名