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

深圳免费网站制作哪个好如何写市场调研报告

深圳免费网站制作哪个好,如何写市场调研报告,博客论坛用wordpress,技术支持 昆明网站建设文章目录 1. 概述1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 命令模式#xff08;Command#xff09;将类的业务行为以对象的方式封装#xff0c;以便实现行为的参数化、撤销或重做等需求。 非命令模式的困惑#xff1a; 类的行为在运行时是以实例方法… 文章目录 1. 概述1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 命令模式Command将类的业务行为以对象的方式封装以便实现行为的参数化、撤销或重做等需求。 非命令模式的困惑 类的行为在运行时是以实例方法的形式调用的当方法执行完毕并返回后方法栈将会消除方法的运行状态主要指局部变量保存在栈帧中它会随着方法栈的销毁而丢失。当方法的运行状态丢失时撤销、重做等类似操作就很难顺利实现。命令模式的优势 命令模式将目标类的业务行为分离出去并用单独的对象类称为命令类封装。在程序运行时被分离的业务行为作为一个独立的对象存在可以被存储或参数化作为参数在不同对象间传递为实现该行为的撤销、重做等提供支持。 1.1 角色 Command(抽象命令)一般定义为接口用来定义执行的命令。ConcreteCommand(具体命令)通常会持有接收者对象并调用接收者对象的相应功能来完成命令要执行的操作。Receiver(接收者)真正执行命令的对象。任何类都可能成为接收者只要它能够实现命令要求实现的相应功能。Invoker(调用者)要求命令对象执行请求通常会持有命令对象可以持有很多的命令对象。这个是客户端真正触发命令并要求命令执行相应操作的地方也就是说相当于使用命令对象的入口。Client创建具体的命令对象并且设置命令对象的接收者。 1.2 类图 #mermaid-svg-tJkLdD8pCohya3Fd {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-tJkLdD8pCohya3Fd .error-icon{fill:#552222;}#mermaid-svg-tJkLdD8pCohya3Fd .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-tJkLdD8pCohya3Fd .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-tJkLdD8pCohya3Fd .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-tJkLdD8pCohya3Fd .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-tJkLdD8pCohya3Fd .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-tJkLdD8pCohya3Fd .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-tJkLdD8pCohya3Fd .marker{fill:#333333;stroke:#333333;}#mermaid-svg-tJkLdD8pCohya3Fd .marker.cross{stroke:#333333;}#mermaid-svg-tJkLdD8pCohya3Fd svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-tJkLdD8pCohya3Fd g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-tJkLdD8pCohya3Fd g.classGroup text .title{font-weight:bolder;}#mermaid-svg-tJkLdD8pCohya3Fd .nodeLabel,#mermaid-svg-tJkLdD8pCohya3Fd .edgeLabel{color:#131300;}#mermaid-svg-tJkLdD8pCohya3Fd .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-tJkLdD8pCohya3Fd .label text{fill:#131300;}#mermaid-svg-tJkLdD8pCohya3Fd .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-tJkLdD8pCohya3Fd .classTitle{font-weight:bolder;}#mermaid-svg-tJkLdD8pCohya3Fd .node rect,#mermaid-svg-tJkLdD8pCohya3Fd .node circle,#mermaid-svg-tJkLdD8pCohya3Fd .node ellipse,#mermaid-svg-tJkLdD8pCohya3Fd .node polygon,#mermaid-svg-tJkLdD8pCohya3Fd .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-tJkLdD8pCohya3Fd .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-tJkLdD8pCohya3Fd g.clickable{cursor:pointer;}#mermaid-svg-tJkLdD8pCohya3Fd g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-tJkLdD8pCohya3Fd g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-tJkLdD8pCohya3Fd .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-tJkLdD8pCohya3Fd .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-tJkLdD8pCohya3Fd .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-tJkLdD8pCohya3Fd .dashed-line{stroke-dasharray:3;}#mermaid-svg-tJkLdD8pCohya3Fd #compositionStart,#mermaid-svg-tJkLdD8pCohya3Fd .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-tJkLdD8pCohya3Fd #compositionEnd,#mermaid-svg-tJkLdD8pCohya3Fd .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-tJkLdD8pCohya3Fd #dependencyStart,#mermaid-svg-tJkLdD8pCohya3Fd .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-tJkLdD8pCohya3Fd #dependencyStart,#mermaid-svg-tJkLdD8pCohya3Fd .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-tJkLdD8pCohya3Fd #extensionStart,#mermaid-svg-tJkLdD8pCohya3Fd .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-tJkLdD8pCohya3Fd #extensionEnd,#mermaid-svg-tJkLdD8pCohya3Fd .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-tJkLdD8pCohya3Fd #aggregationStart,#mermaid-svg-tJkLdD8pCohya3Fd .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-tJkLdD8pCohya3Fd #aggregationEnd,#mermaid-svg-tJkLdD8pCohya3Fd .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-tJkLdD8pCohya3Fd .edgeTerminals{font-size:11px;}#mermaid-svg-tJkLdD8pCohya3Fd :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} «interface» Command execute() ConcreteCommand -state: State -receiver:Receiver execute() Receiver CommandAction() Invoker store() Client store() 2. 代码示例 2.1 设计 定义一个抽象命令Command定义两个具体命令Start和Stop 它实现了抽象命令Command它继承了接收者Service 定义一个接收者Service 它有Start()和Stop()两个方法分别对应它的启动和停止操作 定义一个调用者 它是Command的聚合它的AddCommand()方法将Command加入调用者它的Option()方法执行了加入它的命令 调用 实例化一个接收者实例化两个具体命令实例化一个执行者各命令加入执行者执行执行者的Option()方法验证接收者状态 2.2 代码 代码 package mainimport fmt// 创建抽象命令 type Command interface {execute() }// 创建具体命令start type Start struct {Status boolService *Service }func (s *Start) execute() {err : s.Service.start()if err ! nil {s.Status true}s.Status false }// 定义具体命令Stop type Stop struct {Status boolService *Service }func (s *Stop) execute() {err : s.Service.stop()if err ! nil {s.Status true}s.Status false }// 定义接收者 type Service struct {status string }func (s *Service) start() (err error) {fmt.Println(执行启动操作) //假装执行了操作实际操作中如果有错这里会抛出s.status Runningreturn nil }func (s *Service) stop() (err error) {fmt.Println(执行停止操作) //假装执行了停止实际操作中如果有错这里会抛出s.status Exitedreturn nil }func (s *Service) GetStatus() {fmt.Printf(服务状态%v, s.status) }// 调用者 type Invoker struct {commands []Command }func (i *Invoker) AddCommand(command ...Command) {i.commands append(i.commands, command...)}func (i *Invoker) option() {for _, command : range i.commands {command.execute()} }func main() {//实例化一个接收者myService : Service{}//实例化一个具体命令start : Start{Service: myService,}//实例化另一个具体命令stop : Stop{Service: myService,}//实例化一个调用者invoker : Invoker{}//将刚才实例化的命令加入调用者invoker.AddCommand(stop, start)//执行操作invoker.option()//验证接受者状态myService.GetStatus() }输出 执行停止操作 执行启动操作 服务状态Running2.3 类图 #mermaid-svg-spmTxHLNOKTEiivv {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-spmTxHLNOKTEiivv .error-icon{fill:#552222;}#mermaid-svg-spmTxHLNOKTEiivv .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-spmTxHLNOKTEiivv .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-spmTxHLNOKTEiivv .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-spmTxHLNOKTEiivv .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-spmTxHLNOKTEiivv .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-spmTxHLNOKTEiivv .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-spmTxHLNOKTEiivv .marker{fill:#333333;stroke:#333333;}#mermaid-svg-spmTxHLNOKTEiivv .marker.cross{stroke:#333333;}#mermaid-svg-spmTxHLNOKTEiivv svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-spmTxHLNOKTEiivv g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-spmTxHLNOKTEiivv g.classGroup text .title{font-weight:bolder;}#mermaid-svg-spmTxHLNOKTEiivv .nodeLabel,#mermaid-svg-spmTxHLNOKTEiivv .edgeLabel{color:#131300;}#mermaid-svg-spmTxHLNOKTEiivv .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-spmTxHLNOKTEiivv .label text{fill:#131300;}#mermaid-svg-spmTxHLNOKTEiivv .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-spmTxHLNOKTEiivv .classTitle{font-weight:bolder;}#mermaid-svg-spmTxHLNOKTEiivv .node rect,#mermaid-svg-spmTxHLNOKTEiivv .node circle,#mermaid-svg-spmTxHLNOKTEiivv .node ellipse,#mermaid-svg-spmTxHLNOKTEiivv .node polygon,#mermaid-svg-spmTxHLNOKTEiivv .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-spmTxHLNOKTEiivv .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-spmTxHLNOKTEiivv g.clickable{cursor:pointer;}#mermaid-svg-spmTxHLNOKTEiivv g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-spmTxHLNOKTEiivv g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-spmTxHLNOKTEiivv .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-spmTxHLNOKTEiivv .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-spmTxHLNOKTEiivv .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-spmTxHLNOKTEiivv .dashed-line{stroke-dasharray:3;}#mermaid-svg-spmTxHLNOKTEiivv #compositionStart,#mermaid-svg-spmTxHLNOKTEiivv .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-spmTxHLNOKTEiivv #compositionEnd,#mermaid-svg-spmTxHLNOKTEiivv .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-spmTxHLNOKTEiivv #dependencyStart,#mermaid-svg-spmTxHLNOKTEiivv .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-spmTxHLNOKTEiivv #dependencyStart,#mermaid-svg-spmTxHLNOKTEiivv .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-spmTxHLNOKTEiivv #extensionStart,#mermaid-svg-spmTxHLNOKTEiivv .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-spmTxHLNOKTEiivv #extensionEnd,#mermaid-svg-spmTxHLNOKTEiivv .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-spmTxHLNOKTEiivv #aggregationStart,#mermaid-svg-spmTxHLNOKTEiivv .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-spmTxHLNOKTEiivv #aggregationEnd,#mermaid-svg-spmTxHLNOKTEiivv .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-spmTxHLNOKTEiivv .edgeTerminals{font-size:11px;}#mermaid-svg-spmTxHLNOKTEiivv :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Invoker commands:[]Command AddCommand(command ...Command) option() «interface» Command execute() Start Status:bool Service:*Service Execute() Stop Status:bool Service:*Service Execute() Service status:string start() error) stop()error) GetStatus()
http://www.hkea.cn/news/14279102/

相关文章:

  • 公司做外地网站什么网站建设比较好的
  • 网站前台管理系统一般企业做什么网站
  • 怎么做网站推广和宣传优化工作流程
  • 做php网站前端价格制作网站入门
  • 中国建设招标网网站网易云跟帖 wordpress
  • 沈阳模板建站公司有哪些wordpress自动分享插件下载
  • 网站建设课程报告论文设计网站开发费用计入什么科目
  • 心理健康网站建设论文wordpress加载完再显示图片
  • 网站建设多少网站建设阶段的推广
  • 杰奇怎么做网站地图北京三里屯
  • 太原网站制作公司哪家好设计师必看的10个网站
  • wordpress后台怎么进的南昌seo外包公司
  • 全网推广网站电商网站优缺点
  • 快速排名网站系统新建网站如何被搜索
  • 比较好的网站建设品牌升级成都专业做网站公司有哪些
  • seo的网站特征网站建设技术托管
  • 建站源码程序自己想做个网站
  • 中国企业网官方网站查询个人网站设计作品html
  • 外贸网站模板哪里下载2017网站开发新技术
  • 青海论坛网站建设网站流量下滑
  • 慈溪怎么做网站php网站开发怎么样
  • 昆山网站推广wordpress+技术类模板下载
  • ps做网站的分辨率多少怎么搭建属于自己的网站
  • 怎么注销网站备案专业网站优化公司
  • 建设银行招生网站网站建设专员
  • 南京哪家做电商网站外贸推广平台有哪几个
  • 做的网站打不开新余建站公司
  • dede网站搬家后为什么都没有内容呢传业做微采商城网站
  • 江苏建站网站建设业务的途径
  • wordpress 视频站模板下载phpstudy如何建设网站