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

外贸设计网站建设企业邮箱注册申请步骤

外贸设计网站建设,企业邮箱注册申请步骤,WordPress图床源码,怎么用wordpress建微博一、什么是职责链模式 职责链模式是一种行为型设计模式,它允许将请求沿着处理者的链进行传递,直到有一个处理者能够处理它为止。换句话说,它将请求的发送者和接收者解耦,使得多个对象都有机会处理这个请求,从而避免了将…

一、什么是职责链模式

        职责链模式是一种行为型设计模式它允许将请求沿着处理者的链进行传递,直到有一个处理者能够处理它为止。换句话说,它将请求的发送者和接收者解耦,使得多个对象都有机会处理这个请求,从而避免了将请求直接发送给具体的处理者。

        在职责链模式中,多个处理者对象形成一个链,客户端将请求传递给链中的第一个处理者,由第一个处理者决定是自己处理请求,还是将请求传递给下一个处理者,直到请求被处理或者链末尾没有处理者为止。

二、职责链模式的结构

  • Handler(处理者):定义处理请求的接口,并且可以访问下一个处理者。
  • ConcreteHandler(具体处理者):实现了处理请求的具体逻辑,如果能够处理该请求,则处理它,如果不能处理,则将请求传递给链中的下一个处理者。
  • Client(客户端):发起请求并传递给链中的第一个处理者。

三、职责链模式的优点

  • 降低耦合性:请求发送者和请求接收者解耦,发送者无需知道具体处理者。
  • 灵活性:可以灵活地组织处理者链,可以动态地改变链的结构。
  • 简化代码:职责链模式可以避免多重条件语句,使代码更简洁。

四、职责链模式的缺点

  • 链过长:如果链太长,可能会导致性能问题。
  • 处理不当:如果没有合适的处理者,可能会造成请求得不到处理。

五、案例讲解:客服支持系统

        假设我们有一个客服支持系统,客户提交的问题根据其优先级需要经过不同层级的客服人员处理。优先级较低的问题由初级客服处理,优先级较高的问题由技术支持人员处理,如果问题依然没有解决,那么会交给经理来处理。

        我们可以使用职责链模式来处理这个场景。以下是完整的代码实现。

六、代码实现

1.问题设计(SupportTicket)

public class SupportTicket {private String description; // 问题描述private int priority;       // 问题优先级,数值越大表示优先级越高public SupportTicket(String description, int priority) {this.description = description;this.priority = priority;}public String getDescription() {return description;}public int getPriority() {return priority;}
}

  SupportTicket 类表示客户提交的问题,包含问题的描述和优先级。

2.抽象支持处理者(SupportHandler)

public abstract class SupportHandler {private SupportHandler nextHandler; // 下一个处理者// 设置下一个处理者public void setNextHandler(SupportHandler nextHandler){this.nextHandler = nextHandler;}// 获取下一个处理者public SupportHandler getNextHandler(){return nextHandler;}// 处理请求的方法public abstract void handleTicket(SupportTicket ticket);
}

  SupportHandler 是职责链模式中的抽象处理者,它定义了处理请求的方法 handleTicket,并且维护了一个指向下一个处理者的引用(nextHandler)。

3.初级支持处理者(JuniorSupport)

public class JuniorSupport extends SupportHandler{@Overridepublic void handleTicket(SupportTicket ticket) {if(ticket.getPriority() <= 2){System.out.println("初级客服处理问题:"+ticket.getDescription());} else if (getNextHandler() != null) {getNextHandler().handleTicket(ticket); // 传递给下一个处理者} else {System.out.println("问题过大,需要汇报给总部处理!!!");}}
}

  JuniorSupport 是一个具体处理者类,当问题的优先级小于等于 2 时,它会处理该问题。如果问题优先级较高,它会将请求传递给下一个处理者。

4.技术支持处理者(TechSupport)

public class TechSupport extends SupportHandler{@Overridepublic void handleTicket(SupportTicket ticket) {if(ticket.getPriority() <= 4){System.out.println("技术员处理问题:"+ticket.getDescription());} else if (getNextHandler() != null) {getNextHandler().handleTicket(ticket);  // 传递给下一个处理者} else {System.out.println("问题过大,需要汇报给总部处理!!!");}}
}

  TechSupport 处理优先级小于等于 4 的问题,其他问题会传递给下一个处理者。

5.经理支持处理者(ManagerSupport)

public class ManagerSupport extends SupportHandler{@Overridepublic void handleTicket(SupportTicket ticket) {if(ticket.getPriority() <= 10){System.out.println("经理处理问题:"+ticket.getDescription());} else if (getNextHandler() != null) {getNextHandler().handleTicket(ticket);} else {System.out.println("问题过大,需要汇报给总部处理!!!");}}
}

  ManagerSupport 处理优先级小于等于 10 的问题,其他问题会传递给下一个处理者,直到链的末尾。

6.测试类(TestChain)

public class TestChain {public static void main(String[] args) {// 问题声明SupportTicket ticket1 = new SupportTicket("线路混乱", 1);SupportTicket ticket2 = new SupportTicket("服务器异常", 113);// 处理者声明SupportHandler handler1 = new JuniorSupport();SupportHandler handler2 = new TechSupport();SupportHandler handler3 = new ManagerSupport();// 处理者链的组装handler1.setNextHandler(handler2);handler2.setNextHandler(handler3);// 问题处理的传递handler1.handleTicket(ticket1);handler1.handleTicket(ticket2);}
}

        在 TestChain 中,我们创建了三个处理者(JuniorSupportTechSupportManagerSupport),并将它们串联成一个处理链。当请求传递给第一个处理者时,若它不能处理请求,就将请求交给下一个处理者,直到找到合适的处理者或者到达链的末尾。

7. 总结

        职责链模式通过将请求沿着处理者链进行传递,使得每个处理者只关心自己能处理的请求,从而减少了发送者与接收者之间的耦合。职责链模式有助于系统的灵活扩展,因为我们可以在运行时动态地调整处理链结构。通过这种模式,能够实现请求的逐层处理,直到有一个处理者能够处理该请求为止。

http://www.yayakq.cn/news/501231/

相关文章:

  • 厦门专业做网站的风铃上做的网站发布时号码填写
  • 网站不备案能用吗上海比较好的网站建设公司
  • 如何做旅游网站推销app开发工具简单
  • 商务网站建设期末考试制作企业官网
  • 厦门手机建站wordpress aspnet_client
  • 网站排名所以关键词下降吉林网站模板
  • 如何免费开自己的网站网站在线帮助如何设计
  • 网站优化 代码优化中国建设银行官网站下载中心
  • 做网站付款会有凭证吗注册会计师报名时间
  • 网站建设的市场策划苏州做管网gis的网站
  • 湖北专业网站建设检修交换友链是什么意思
  • 医院品牌网站建设武进网站建设机构
  • 额尔古纳网站建设无锡八匹马网站建设
  • 品牌网站建设绿d茶设计排版软件
  • 百度网站建设中的自由容器企业怎么建设自己的网站首页
  • 功能性的网站归档系统第三方物流网站建设
  • 郑州php网站开发培训安卓手机做网站服务器吗
  • 标准网站建设价格国外响应式网站
  • 网站建设的目的是什么怎么创建个人网页
  • 商城网站建设行业现状网站制作 推荐新鸿儒
  • 平台兼职网站开发深圳做网站建设开发
  • php网站搬家软件建设好网站怎么付费推广
  • 网站接口设置家具网站模版
  • 上海专业网站建设 公司网站焦点图怎么做链接
  • 企业网站建设全包东莞seo网站制作报价
  • php网站建设有关知识中小企业erp系统哪个好
  • 手机网店开店网站全民健身中心项目
  • 广州网站建设网站推广网站设计原型
  • 中标公示查询网站万网域名续费优惠
  • 聊城宏远网站建设优化淘宝 网站开发 退货