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

做美工的网站二级建造师官网

做美工的网站,二级建造师官网,不花钱的免费永久云服务器平台,网页打不开怎么处理目录 情景剧场什么是命令模式优缺点优点缺点 使用命令模式的步骤命令模式代码示例合理使用AI工具自动生成代码 情景剧场 我们来设想一个场景#xff1a; 你进入一家餐馆#xff0c;餐馆只有老板一个人#xff08;老板即厨师#xff09;。 “老板#xff0c;一份小炒肉 你进入一家餐馆餐馆只有老板一个人老板即厨师。 “老板一份小炒肉不要辣。” 老板收到了你的订单请求去后厨做菜了。这时又进来几位顾客 “老板来两份清炒时蔬不要辣。” “老板我要一份清炒时蔬多放辣。” “老板一份小炒肉多放辣打包。” “老板我的两份清炒时蔬改成一份打包。” … #mermaid-svg-DvmbxwT2R86eTMvr {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-DvmbxwT2R86eTMvr .error-icon{fill:#552222;}#mermaid-svg-DvmbxwT2R86eTMvr .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-DvmbxwT2R86eTMvr .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-DvmbxwT2R86eTMvr .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-DvmbxwT2R86eTMvr .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-DvmbxwT2R86eTMvr .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-DvmbxwT2R86eTMvr .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-DvmbxwT2R86eTMvr .marker{fill:#333333;stroke:#333333;}#mermaid-svg-DvmbxwT2R86eTMvr .marker.cross{stroke:#333333;}#mermaid-svg-DvmbxwT2R86eTMvr svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-DvmbxwT2R86eTMvr g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-DvmbxwT2R86eTMvr g.classGroup text .title{font-weight:bolder;}#mermaid-svg-DvmbxwT2R86eTMvr .nodeLabel,#mermaid-svg-DvmbxwT2R86eTMvr .edgeLabel{color:#131300;}#mermaid-svg-DvmbxwT2R86eTMvr .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-DvmbxwT2R86eTMvr .label text{fill:#131300;}#mermaid-svg-DvmbxwT2R86eTMvr .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-DvmbxwT2R86eTMvr .classTitle{font-weight:bolder;}#mermaid-svg-DvmbxwT2R86eTMvr .node rect,#mermaid-svg-DvmbxwT2R86eTMvr .node circle,#mermaid-svg-DvmbxwT2R86eTMvr .node ellipse,#mermaid-svg-DvmbxwT2R86eTMvr .node polygon,#mermaid-svg-DvmbxwT2R86eTMvr .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-DvmbxwT2R86eTMvr .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-DvmbxwT2R86eTMvr g.clickable{cursor:pointer;}#mermaid-svg-DvmbxwT2R86eTMvr g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-DvmbxwT2R86eTMvr g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-DvmbxwT2R86eTMvr .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-DvmbxwT2R86eTMvr .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-DvmbxwT2R86eTMvr .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-DvmbxwT2R86eTMvr .dashed-line{stroke-dasharray:3;}#mermaid-svg-DvmbxwT2R86eTMvr #compositionStart,#mermaid-svg-DvmbxwT2R86eTMvr .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-DvmbxwT2R86eTMvr #compositionEnd,#mermaid-svg-DvmbxwT2R86eTMvr .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-DvmbxwT2R86eTMvr #dependencyStart,#mermaid-svg-DvmbxwT2R86eTMvr .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-DvmbxwT2R86eTMvr #dependencyStart,#mermaid-svg-DvmbxwT2R86eTMvr .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-DvmbxwT2R86eTMvr #extensionStart,#mermaid-svg-DvmbxwT2R86eTMvr .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-DvmbxwT2R86eTMvr #extensionEnd,#mermaid-svg-DvmbxwT2R86eTMvr .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-DvmbxwT2R86eTMvr #aggregationStart,#mermaid-svg-DvmbxwT2R86eTMvr .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-DvmbxwT2R86eTMvr #aggregationEnd,#mermaid-svg-DvmbxwT2R86eTMvr .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-DvmbxwT2R86eTMvr .edgeTerminals{font-size:11px;}#mermaid-svg-DvmbxwT2R86eTMvr :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 顾客 点菜() 厨师 小炒肉() 清炒时蔬() 当顾客变多请求也变多而每个顾客的请求也非常不一样。老板就很容易分不清谁的需求是什么做错菜、上错菜都是会发生的错误。顾客对老板直接提出请求请求多了很容易导致混乱。这里顾客就是请求的发送者老板就是请求的接收者请求者和接收者的“紧耦合”虽然逻辑简单但是很容易僵化。 当给餐馆加上服务员和订单就会不一样 顾客走进餐馆开始点单服务员接过顾客的订单并将其写在一张纸上。服务员去厨房把订单贴在墙上订单按排列顺序到达厨师手中这样厨师做菜就不会混乱也不会遗忘。厨师将餐点与订单一起转交服务员服务员检查订单并将所有东西带到顾客的餐桌上。在此期间顾客可以撤销订单或增删订单需求。 #mermaid-svg-gStHOdWfsHY5eqvG {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-gStHOdWfsHY5eqvG .error-icon{fill:#552222;}#mermaid-svg-gStHOdWfsHY5eqvG .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-gStHOdWfsHY5eqvG .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-gStHOdWfsHY5eqvG .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-gStHOdWfsHY5eqvG .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-gStHOdWfsHY5eqvG .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-gStHOdWfsHY5eqvG .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-gStHOdWfsHY5eqvG .marker{fill:#333333;stroke:#333333;}#mermaid-svg-gStHOdWfsHY5eqvG .marker.cross{stroke:#333333;}#mermaid-svg-gStHOdWfsHY5eqvG svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-gStHOdWfsHY5eqvG g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-gStHOdWfsHY5eqvG g.classGroup text .title{font-weight:bolder;}#mermaid-svg-gStHOdWfsHY5eqvG .nodeLabel,#mermaid-svg-gStHOdWfsHY5eqvG .edgeLabel{color:#131300;}#mermaid-svg-gStHOdWfsHY5eqvG .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-gStHOdWfsHY5eqvG .label text{fill:#131300;}#mermaid-svg-gStHOdWfsHY5eqvG .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-gStHOdWfsHY5eqvG .classTitle{font-weight:bolder;}#mermaid-svg-gStHOdWfsHY5eqvG .node rect,#mermaid-svg-gStHOdWfsHY5eqvG .node circle,#mermaid-svg-gStHOdWfsHY5eqvG .node ellipse,#mermaid-svg-gStHOdWfsHY5eqvG .node polygon,#mermaid-svg-gStHOdWfsHY5eqvG .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-gStHOdWfsHY5eqvG .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-gStHOdWfsHY5eqvG g.clickable{cursor:pointer;}#mermaid-svg-gStHOdWfsHY5eqvG g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-gStHOdWfsHY5eqvG g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-gStHOdWfsHY5eqvG .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-gStHOdWfsHY5eqvG .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-gStHOdWfsHY5eqvG .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-gStHOdWfsHY5eqvG .dashed-line{stroke-dasharray:3;}#mermaid-svg-gStHOdWfsHY5eqvG #compositionStart,#mermaid-svg-gStHOdWfsHY5eqvG .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gStHOdWfsHY5eqvG #compositionEnd,#mermaid-svg-gStHOdWfsHY5eqvG .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gStHOdWfsHY5eqvG #dependencyStart,#mermaid-svg-gStHOdWfsHY5eqvG .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gStHOdWfsHY5eqvG #dependencyStart,#mermaid-svg-gStHOdWfsHY5eqvG .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gStHOdWfsHY5eqvG #extensionStart,#mermaid-svg-gStHOdWfsHY5eqvG .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gStHOdWfsHY5eqvG #extensionEnd,#mermaid-svg-gStHOdWfsHY5eqvG .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gStHOdWfsHY5eqvG #aggregationStart,#mermaid-svg-gStHOdWfsHY5eqvG .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gStHOdWfsHY5eqvG #aggregationEnd,#mermaid-svg-gStHOdWfsHY5eqvG .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gStHOdWfsHY5eqvG .edgeTerminals{font-size:11px;}#mermaid-svg-gStHOdWfsHY5eqvG :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 顾客 点菜() -取消点菜() Order 点菜() -取消点菜() 小炒肉 点菜() -取消点菜() 清炒时蔬 点菜() -取消点菜() 服务员 orders : List takeOrder() placeOrder() 厨师 炒肉() 炒时蔬() 顾客不需要知道是谁来完成烹饪厨师不需要知道是谁的订单纸质订单用作命令一直排在队列中。这也就实现了请求者和接收者的解耦。 什么是命令模式 命令模式Command Pattern是一种行为设计模式它把请求或操作封装成一个包含有关请求所有信息的独立对象此转换允许将请求作为方法参数传递延迟或排队请求的执行并支持可撤消的操作从而实现将请求者和接收者解耦。 优缺点 命令模式是一种灵活且功能强大的设计模式主要优点是它允许在不修改现有客户端代码的情况下添加新的命令。此外通过使用命令模式可以将操作记录到日志中、撤销操作或者将操作进行队列化等同时他也有一些缺点。 优点 解耦性命令模式通过将请求发送者与接收者解耦使得请求发送者不需要知道接收者的具体实现细节从而增强了系统的灵活性和可维护性。 可扩展性通过添加新的具体命令类可以很容易地扩展系统的功能而不需要修改已有的代码。 支持撤销和重做命令模式可以记录请求的历史操作从而支持对操作的撤销和重做提供了更好的用户体验。 支持日志和队列可以将命令对象保存在日志中实现系统的日志记录功能。此外命令对象还可以组织成队列实现命令的批处理和延迟执行。 命令模式符合“开-闭”原则。因为将具体命令封装成了一个一个独立的对象所有当需要修改现有功能时可以通过添加新代码来实现而不是修改已有的代码。这样可以提高代码的可维护性和可扩展性减少出错率和代码复杂度。具体点说在增加新的具体命令或增加命令的接收者时不需要修改原有调用者的代码而在增加新的调用者时不需要修改原有的具体命令和接收者的代码。 命令模式支持宏命令。 即将多个命令组合成一个命令。这样可以将多个操作封装成一个操作减少了代码的冗余和重复提高代码的复用率。 缺点 类的数量增加引入命令模式会增加系统中的类的数量特别是在有大量具体命令类的情况下可能会导致类的数量激增增加了系统的复杂性。命令的单一性每个具体命令类通常只封装了一个特定的操作这可能会导致系统中存在大量的具体命令类增加了系统的管理和维护成本。对象间的调用链可能过长在命令模式中请求发送者、命令对象、接收者之间可能存在多层的调用链特别是在复杂的系统中可能会导致调用链过长影响系统的性能。 虽然命令模式有一些缺点但在很多场景下仍然是一种非常有用的设计模式特别是在需要支持撤销、重做、日志记录和队列等功能的情况下。 使用命令模式的步骤 使用命令模式可以通过以下步骤进行 确定参与者首先确定在系统中谁是命令的发起者Invoker、命令的接收者Receiver、以及具体的命令对象Command。定义命令接口创建一个命令接口其中包含一个执行操作的方法如execute()。这个接口可以是抽象类或者接口具体取决于设计的需求。实现具体命令类针对每个具体的操作创建一个具体的命令类实现命令接口并在其中封装具体的操作实现。创建接收者类定义接收者类实现命令所需的具体操作。 创建调用者类创建一个调用者类负责向具体的命令对象发送请求。创建客户端代码在客户端代码中创建具体的命令对象并将其关联到调用者对象上。 命令模式代码示例 ; 定义命令接口 class ICommand {Execute() {; 需要被覆盖的方法抽象方法} }; 定义具体命令A class CommandA extends ICommand {Execute() {MsgBox(Command A Executed)} }; 定义具体命令B class CommandB extends ICommand {Execute() {MsgBox(Command B Executed)} }; 定义调用者负责执行命令 class Invoker {__New(command) {this.command : command}ExecuteCommand() {this.command.Execute()} }; 客户端代码 main() {; 创建命令实例_commandA : CommandA()_commandB : CommandB(); 创建调用者并关联命令_invokerA : Invoker(_commandA)_invokerB : Invoker(_commandB); 执行命令_invokerA.ExecuteCommand()_invokerB.ExecuteCommand() }; 运行主程序 main()合理使用AI工具自动生成代码 上面的代码是用Comate生成的 代码就是上面那部分我就不截图了稍微改改就可以运行。也可以把报错信息提示给它它会给出修改代码示例。 还可以让它输出UML类图 这个mermaid代码直接在CSDN的波纹MD编辑模式可以直接用哦。 感兴趣可以在VSCODE中安装这个AI编码助手——Comate感觉能在小众语言AHK上表现这么好还是很令人惊讶的。
http://www.hkea.cn/news/14293575/

相关文章:

  • 站外推广免费网站贵阳网站建设设计公司哪家好
  • 教育网站制作网站网页图片加载慢解决方法
  • 模板网站更改网站推广是什么岗位
  • 网站后台管理系统展望云南网站做的好的公司哪家好
  • 北京微网站设计制作服务软媒win7优化大师
  • 途牛网网站建设评价php招投标网站源码
  • 做电影ppt模板下载网站杭州滨江网站建设
  • 中国人做外贸网站都卖什么wordpress快速发文插件
  • 工作室网站源码学校网页设计方案
  • 网站建设公司做销售前景好不好?网站建设十年经验
  • 国外财经网站是怎么做的做网站注册公司
  • ftp 网站文件网站群建设公司排行榜
  • 钦州网站推广建设标准信息网站
  • 网站建设技术服务公司屏蔽网站ip
  • 购物网站案例企业制作宣传片拍摄
  • 网站做数学题wordpress上传图片被压缩
  • 中国建设银行网站不好用云服务器的作用
  • 政务网站模板做软件赚钱还是做网站赚钱
  • 青岛房地产团购网站建设点击网络网站
  • 大丰企业做网站多少钱企业网页页面模块
  • 搭建淘宝客网站源码网站模版上线需要什么意思
  • 百度推广引流seo网站搭建
  • 动易网站后台编辑器无效问题代码
  • 在人才网站做业务jquery电子商务网站模板
  • 网站建设与管理实训主要内容科技打造巅峰华夏从横推鹰酱开始
  • html网站模板免费制作展示型网站的公司
  • 网站建设与用户体验工业设计属于什么专业类别
  • 手机欧美视频网站模板下载 迅雷下载 迅雷下载地址做网站制作的摘要
  • 站长工具ip地址360免费wifi旧版本下载
  • 企业网站建设一条常州网站建设公司哪个好