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

厦门网站建设公司哪家好电商代运营收费标准

厦门网站建设公司哪家好,电商代运营收费标准,wordpress配置发信,asp网站首页文章目录 1 概念1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1 概念 责任链(Chain of Responsibility)是指将客户端请求处理的不同职责对象组成请求处理链。 客户端只需要将请求交付到该链上,而不需要关心链上含有哪些对象。请求…

文章目录

  • 1 概念
    • 1.1 角色
    • 1.2 类图
  • 2. 代码示例
    • 2.1 设计
    • 2.2 代码
    • 2.3 类图

1 概念

责任链(Chain of Responsibility)是指将客户端请求处理的不同职责对象组成请求处理链。

客户端只需要将请求交付到该链上,而不需要关心链上含有哪些对象。请求处理链上的对象收到请求后,执行自身业务职责,并将该请求传递到下一个链节点。由于客户端不需要了解责任链上节点对象的具体类型,大大降低了客户端与请求处理对象之间的耦合度。

1.1 角色

抽象处理者(Handler):包含抽象处理方法和一个后续处理者。
具体处理者(ConcreteHandler):实现抽象处理者的处理方法。
请求发送者(Client):向处理者发送请求。

1.2 类图

Client
Handler
#successor:Handler
+handleRequest(request:Request)
ConcreteHandlerA
+handleRequest(request:Request)
ConcreteHandlerB
+handleRequest(request:Request)

2. 代码示例

2.1 设计

  • 定义一个抽象处理者Handler
  • 定义实际处理者ConcreteHandlerAConcreteHandlerB
    • 它们实现了抽象处理者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
执行:handlerA1

2.3 类图

Client
«interface»
Handler
+handleRequest() : string
ConcreteHandlerA
+name:string
+next:Handler
+handleRequest() : string
+Option()
ConcreteHandlerB
+name:string
+next:Handler
+handleRequest() : string
+Option()

在这里插入图片描述

http://www.ds6.com.cn/news/108922.html

相关文章:

  • 在网站上做的图表怎么放到PPT里面长春网站开发公司
  • 做网站好学吗游戏推广员是违法的吗
  • 搭建什么网站赚钱站内搜索工具
  • 陕西建新建设有限公司网站广东seo推广
  • 自己在网站开发的客户怎么联系seo云优化软件破解版
  • 做是么网站网站seo什么意思
  • php 网站开发案例教程平台运营推广方案
  • 用java可以做网站吗软文推广名词解释
  • 好的公司网站竞价外包托管费用
  • 西宁网站建设哪家公司好seo优化的搜索排名影响因素主要有
  • 化妆网站模板下载免费怎么推广一个app
  • 网站建设系统服务机构百度手机助手下载正版
  • 网站开发前端是什么精品成品网站源码
  • java和php做网站谁好seo怎么才能优化好
  • 郑州锐途网站建设长沙网站开发制作
  • 做网站服装app企业网站营销的优缺点
  • 静安网站建设免费b站推广入口
  • 在别的公司做的网站可以转走吗福建搜索引擎优化
  • 怎么做推广网站怎么登录百度app
  • 企业整套vi设计都包含哪些西安企业seo外包服务公司
  • 武汉做商城网站建设seo网站推广案例
  • 福田做商城网站建设哪家公司便宜点网络优化公司有哪些
  • 网站设计公司建设优化排名
  • 有没有帮人做简历的网站免费发布信息网站大全
  • vs 团队网站开发百度知道合伙人官网登录入口
  • 耀华建设管理有限公司网站站长工具推荐网站
  • 纯js做网站网络推广公司收费标准
  • wordpress开启多站点功免费网络推广平台有哪些
  • 做美国市场哪个网站好西安网站seo外包
  • 中小企业网站建设框架衡水网站seo