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

北海住房和城乡建设部网站广州的互联网公司

北海住房和城乡建设部网站,广州的互联网公司,网站建设价格差异多少,如何建设内部网站文章目录 1 概念1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1 概念 责任链#xff08;Chain of Responsibility#xff09;是指将客户端请求处理的不同职责对象组成请求处理链。 客户端只需要将请求交付到该链上#xff0c;而不需要关心链上含有哪些对象。请求… 文章目录 1 概念1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1 概念 责任链Chain of Responsibility是指将客户端请求处理的不同职责对象组成请求处理链。 客户端只需要将请求交付到该链上而不需要关心链上含有哪些对象。请求处理链上的对象收到请求后执行自身业务职责并将该请求传递到下一个链节点。由于客户端不需要了解责任链上节点对象的具体类型大大降低了客户端与请求处理对象之间的耦合度。 1.1 角色 抽象处理者Handler包含抽象处理方法和一个后续处理者。 具体处理者ConcreteHandler实现抽象处理者的处理方法。 请求发送者Client向处理者发送请求。 1.2 类图 #mermaid-svg-2ykADgtH0sAQ5jQ5 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .error-icon{fill:#552222;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .marker.cross{stroke:#333333;}#mermaid-svg-2ykADgtH0sAQ5jQ5 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-2ykADgtH0sAQ5jQ5 g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-2ykADgtH0sAQ5jQ5 g.classGroup text .title{font-weight:bolder;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .nodeLabel,#mermaid-svg-2ykADgtH0sAQ5jQ5 .edgeLabel{color:#131300;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .label text{fill:#131300;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .classTitle{font-weight:bolder;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .node rect,#mermaid-svg-2ykADgtH0sAQ5jQ5 .node circle,#mermaid-svg-2ykADgtH0sAQ5jQ5 .node ellipse,#mermaid-svg-2ykADgtH0sAQ5jQ5 .node polygon,#mermaid-svg-2ykADgtH0sAQ5jQ5 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-2ykADgtH0sAQ5jQ5 g.clickable{cursor:pointer;}#mermaid-svg-2ykADgtH0sAQ5jQ5 g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-2ykADgtH0sAQ5jQ5 g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .dashed-line{stroke-dasharray:3;}#mermaid-svg-2ykADgtH0sAQ5jQ5 #compositionStart,#mermaid-svg-2ykADgtH0sAQ5jQ5 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2ykADgtH0sAQ5jQ5 #compositionEnd,#mermaid-svg-2ykADgtH0sAQ5jQ5 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2ykADgtH0sAQ5jQ5 #dependencyStart,#mermaid-svg-2ykADgtH0sAQ5jQ5 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2ykADgtH0sAQ5jQ5 #dependencyStart,#mermaid-svg-2ykADgtH0sAQ5jQ5 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2ykADgtH0sAQ5jQ5 #extensionStart,#mermaid-svg-2ykADgtH0sAQ5jQ5 .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2ykADgtH0sAQ5jQ5 #extensionEnd,#mermaid-svg-2ykADgtH0sAQ5jQ5 .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2ykADgtH0sAQ5jQ5 #aggregationStart,#mermaid-svg-2ykADgtH0sAQ5jQ5 .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2ykADgtH0sAQ5jQ5 #aggregationEnd,#mermaid-svg-2ykADgtH0sAQ5jQ5 .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2ykADgtH0sAQ5jQ5 .edgeTerminals{font-size:11px;}#mermaid-svg-2ykADgtH0sAQ5jQ5 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Client Handler #successor:Handler handleRequest(request:Request) ConcreteHandlerA handleRequest(request:Request) ConcreteHandlerB handleRequest(request:Request) 2. 代码示例 2.1 设计 定义一个抽象处理者Handler定义实际处理者ConcreteHandlerA、ConcreteHandlerB 它们实现了抽象处理者Handler它继承了另一个处理者下一个处理者它的Option()方法执行它的责任它的handleRequest()方法组装责任链并执行它的责任 调用 实例化三个实际处理者使用handleRequest()方法执行责任链 2.2 代码 package mainimport (fmt )// 定义抽象处理者 type Handler interface {handleRequest() string }// 定义实际处理者A type ConcreteHandlerA struct {name stringnext Handler } //定义一个方法模拟实际处理者A的处理过程 func (c *ConcreteHandlerA) Option() {fmt.Println(执行 c.name) } //定义一个方法完成它的处理后交给下一个实际处理者 func (c *ConcreteHandlerA) handleRequest() string {c.Option()if c.next ! nil {return c.next.handleRequest()}return }// 定义实际处理者B情况和A相同 type ConcreteHandlerB struct {name stringnext Handler }func (c *ConcreteHandlerB) Option() {fmt.Println(执行 c.name) }func (c *ConcreteHandlerB) handleRequest() string {c.Option()if c.next ! nil {return c.next.handleRequest()}return }//定义一个函数生产处理者 func NewHandler(name string, next Handler, kind string) (handler Handler, err error) {switch kind {case A:handler ConcreteHandlerA{name: name,next: next,}return handler, nilcase B:handler ConcreteHandlerB{name: name,next: next,}return handler, nildefault:return nil, err}}func main() {//实例化3个实际处理者handlerA1, _ : NewHandler(handlerA1, nil, A)handlerA2, _ : NewHandler(handlerA2, handlerA1, A)handlerB1, _ : NewHandler(handlerB1, handlerA2, B)//使用handleRequest方法依次处理处理过程我们不可见但是可以通断点过调试看到r : handlerB1.handleRequest()fmt.Println(r) } 执行结果 执行handlerB1 执行handlerA2 执行handlerA12.3 类图 #mermaid-svg-58ZQMFgWOLIO6lOi {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-58ZQMFgWOLIO6lOi .error-icon{fill:#552222;}#mermaid-svg-58ZQMFgWOLIO6lOi .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-58ZQMFgWOLIO6lOi .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-58ZQMFgWOLIO6lOi .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-58ZQMFgWOLIO6lOi .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-58ZQMFgWOLIO6lOi .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-58ZQMFgWOLIO6lOi .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-58ZQMFgWOLIO6lOi .marker{fill:#333333;stroke:#333333;}#mermaid-svg-58ZQMFgWOLIO6lOi .marker.cross{stroke:#333333;}#mermaid-svg-58ZQMFgWOLIO6lOi svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-58ZQMFgWOLIO6lOi g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-58ZQMFgWOLIO6lOi g.classGroup text .title{font-weight:bolder;}#mermaid-svg-58ZQMFgWOLIO6lOi .nodeLabel,#mermaid-svg-58ZQMFgWOLIO6lOi .edgeLabel{color:#131300;}#mermaid-svg-58ZQMFgWOLIO6lOi .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-58ZQMFgWOLIO6lOi .label text{fill:#131300;}#mermaid-svg-58ZQMFgWOLIO6lOi .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-58ZQMFgWOLIO6lOi .classTitle{font-weight:bolder;}#mermaid-svg-58ZQMFgWOLIO6lOi .node rect,#mermaid-svg-58ZQMFgWOLIO6lOi .node circle,#mermaid-svg-58ZQMFgWOLIO6lOi .node ellipse,#mermaid-svg-58ZQMFgWOLIO6lOi .node polygon,#mermaid-svg-58ZQMFgWOLIO6lOi .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-58ZQMFgWOLIO6lOi .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-58ZQMFgWOLIO6lOi g.clickable{cursor:pointer;}#mermaid-svg-58ZQMFgWOLIO6lOi g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-58ZQMFgWOLIO6lOi g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-58ZQMFgWOLIO6lOi .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-58ZQMFgWOLIO6lOi .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-58ZQMFgWOLIO6lOi .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-58ZQMFgWOLIO6lOi .dashed-line{stroke-dasharray:3;}#mermaid-svg-58ZQMFgWOLIO6lOi #compositionStart,#mermaid-svg-58ZQMFgWOLIO6lOi .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-58ZQMFgWOLIO6lOi #compositionEnd,#mermaid-svg-58ZQMFgWOLIO6lOi .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-58ZQMFgWOLIO6lOi #dependencyStart,#mermaid-svg-58ZQMFgWOLIO6lOi .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-58ZQMFgWOLIO6lOi #dependencyStart,#mermaid-svg-58ZQMFgWOLIO6lOi .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-58ZQMFgWOLIO6lOi #extensionStart,#mermaid-svg-58ZQMFgWOLIO6lOi .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-58ZQMFgWOLIO6lOi #extensionEnd,#mermaid-svg-58ZQMFgWOLIO6lOi .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-58ZQMFgWOLIO6lOi #aggregationStart,#mermaid-svg-58ZQMFgWOLIO6lOi .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-58ZQMFgWOLIO6lOi #aggregationEnd,#mermaid-svg-58ZQMFgWOLIO6lOi .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-58ZQMFgWOLIO6lOi .edgeTerminals{font-size:11px;}#mermaid-svg-58ZQMFgWOLIO6lOi :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Client «interface» Handler handleRequest() : string ConcreteHandlerA name:string next:Handler handleRequest() : string Option() ConcreteHandlerB name:string next:Handler handleRequest() : string Option()
http://www.dnsts.com.cn/news/242299.html

相关文章:

  • 唐山网站开发公司建网站的详细技术
  • wordpress代码恢复旧编辑器南京搜必应网站优化
  • 微信官方网站下载安装个体工商户备案网站备案
  • 德语网站建设wordpress 一级目录下
  • 网站开发提供源代码手机建站平台淘客
  • 做企业网站需要多久新闻今天的最新新闻
  • 如何做好网站首页WordPress下如何用页面做侧边栏
  • 网站建设优惠网站信息发布
  • 微信 免费 网站网站ipv6改造怎么做 网页代码
  • 商务网站开发与建设论文wordpress换新的电脑
  • 建设银行网站用户广告推广一个月多少钱
  • 免费个人网站怎么建立wordpress目录链接加html
  • django做网站效率高吗自助开通网站
  • 贵阳建设银行网站简洁自适应wordpress主题
  • 网站推广平台代理wordpress登入logo修改
  • 南宁彩票网站开发如何让google收录网站
  • 哪里建个人网站好东莞有哪些做网站
  • 广州网站建设公司乐云seo598手机网站导航按钮
  • 17一起广州做网站营销网站的功能
  • form e哪个网站做app官方免费下载
  • asp网站变成php百度推广关键词价格查询
  • 营销网站建设教程高端科技产品网站建设
  • 网站名字怎样做版权wordpress动漫博客主题免费下载
  • 河北省企业网站建设公司如何查看网站的空间商
  • 广州做网站哪家公司最好好文本网站内容管理系统
  • 杭州城乡建设网站为什么用html5做网站
  • 正规的饰品行业网站开发咨询公司网站源码
  • 网站推广的10种方法实体企业做网站好么
  • wordpress 仿站思路查看网站有没有备案
  • 网站优化套餐美工培训费用