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

阿里云网站建设装修方案

阿里云网站建设,装修方案,哈尔滨网站建设信息,网站icp备案什么是职责链模式 职责链模式是避免请求发送者与接受者耦合在一起#xff0c;让多个对象都可以接受到请求#xff0c;从而将这些对象连接成一条链#xff0c;并且沿着这条链传递请求#xff0c;直到有对象处理为止。     职责链模式包含以下几个角色#xff1a;    …什么是职责链模式 职责链模式是避免请求发送者与接受者耦合在一起让多个对象都可以接受到请求从而将这些对象连接成一条链并且沿着这条链传递请求直到有对象处理为止。     职责链模式包含以下几个角色         Handler(抽象处理者)定义处理请求的接口一般是抽象类。由于不同的具体处理类处理请求的方式不同因此在其中定义抽象处理请求的方法。因为每一个处理这的下家还是处理者因此在抽象处理者中定义一个抽象处理者类型的对象作为下家的引用。         ConcreteHandler(具体处理者)是抽象处理者的子类实现了抽象处理者中定义的抽象方法用于处理用户请求。具体处理者有两大作用一是处理请求不同的具体处理者以不同的形式实现抽象处理者的方法。二是转发请求当前处理类可将请求转发给下家。     职责链模式可以分为纯的职责链模式和不纯的职责链模式         纯的职责链模式要求具体处理者只能在两个行为中选择一个要么承担全部责任要么将责任转发给下家不允许出现一个具体处理者承担了一部分或全部责任还要将责任转发给下家。         不纯的职责链模式允许请求被一个具体处理者处理部分或全部后在转发给下家也可以不被任何处理者所处理。 职责链模式的优缺点 优点 一个对象无需知道是其他哪个对象处理请求降低了系统耦合。请求处理对象只需维护一个指向下家的的引用简化对象的相互连接。给对象分派职责时更加灵活可以通过在运行时对该链进行动态增加或修改改变处理请求的职责。增加新的处理请求时无需修改代码符合开闭原则。 缺点 不保证每个请求都会被处理。太长的职责链涉及更多的处理对象会降低系统性能。可能会造成循环调用陷入死循环。 职责链模式的应用场景 有多个对象可以处理同一个请求具体哪个对象处理在运行时决定。不明确接受者的情况下向多个对象中的一个提交请求。可动态指定一组对象处理请求客户端可以动态创建职责链处理请求还可以改变处理请求的顺序。 职责链模式的案例 // 请求对象 public class PurchaseRequest implements Serializable {private int type 0;private float price 0.0f;private int id 0;}// 抽象处理者 public abstract class Approver {Approver approver;String name;public Approver(String name) {this.name name;}public void setApprover(Approver approver) {this.approver approver;}public abstract void processRequest(PurchaseRequest purchaseRequest);}// 具体处理者 public class CollegeApprover extends Approver {public CollegeApprover(String name) {super(name);}Overridepublic void processRequest(PurchaseRequest purchaseRequest) {if (purchaseRequest.getPrice() 5000 purchaseRequest.getPrice() 10000) {System.out.println( 请求编号 id purchaseRequest.getId() 被 this.name 处理);} else {approver.processRequest(purchaseRequest);}} }public class DepartmentApprover extends Approver {public DepartmentApprover(String name) {super(name);}Overridepublic void processRequest(PurchaseRequest purchaseRequest) {if (purchaseRequest.getPrice() 5000) {System.out.println( 请求编号 id purchaseRequest.getId() 被 this.name 处理);} else {approver.processRequest(purchaseRequest);}}}public class SchoolMasterApprover extends Approver {public SchoolMasterApprover(String name) {super(name);}Overridepublic void processRequest(PurchaseRequest purchaseRequest) {if (purchaseRequest.getPrice() 30000) {System.out.println( 请求编号 id purchaseRequest.getId() 被 this.name 处理);} else {approver.processRequest(purchaseRequest);}} }public class ViceSchoolMasterApprover extends Approver {public ViceSchoolMasterApprover(String name) {super(name);}Overridepublic void processRequest(PurchaseRequest purchaseRequest) {if (purchaseRequest.getPrice() 10000 purchaseRequest.getPrice() 30000) {System.out.println( 请求编号 id purchaseRequest.getId() 被 this.name 处理);} else {approver.processRequest(purchaseRequest);}} } 职责链模式在源码中的应用 org.apache.ibatis.plugin.InterceptorChain // 在mybatis源码中添加拦截器就是使用责任链模式 // pluginAll 通过这个方法可以添加定义好的拦截器实现 // 通过遍历 getInterceptors 就可以去请求每一个定义好的拦截器类 public class InterceptorChain {private final ListInterceptor interceptors new ArrayList();public Object pluginAll(Object target) {for (Interceptor interceptor : interceptors) {target interceptor.plugin(target);}return target;}public void addInterceptor(Interceptor interceptor) {interceptors.add(interceptor);}public ListInterceptor getInterceptors() {return Collections.unmodifiableList(interceptors);}}
http://www.hkea.cn/news/14354082/

相关文章:

  • 贵阳网站开发公司中国域名管理中心
  • 网站被黑 百度跳转汕头网站设计怎么做
  • 做外发的网站免费新闻源发布平台
  • c2c网站名称深圳wordpress
  • 自己做的网站套dedecms教程网站建设公司团队简介
  • 音视频网站建设可行性报告太原网站优化推广
  • 网站建设捌金手指花总二九网站搭建网
  • 浦东新区手机网站建设企业网站开发主要职责
  • 闵行虹桥网站建设记账代理公司
  • 哪些网站容易收录网站开发费怎么做账
  • 北京康迪建设监理咨询有限公司网站6外贸网站建设和网站推广要怎么做
  • 网站建设大体包含wordpress 百度分享
  • 门户网站栏目维护建设方案问卷星网站开发市场调查问卷
  • 淘宝做导航网站有哪些提升学历励志语录
  • 济源建设网站的公司临沂网站建设设计
  • 政务网站网上调查怎么做推广网站
  • 音乐网站开发背景免费微信商城小程序
  • 好的平面设计作品网站google网页版
  • 格尔木哪里有做网站的托管网站费用
  • 外综服务平台哪里做网站网页制作的目的和意义
  • 石家庄市网站制作仿站小工具 wordpress
  • 如何做网站二维码python版wordpress
  • wordpress更改站点名称电脑手机网站建设
  • cnc强力磁盘 东莞网站建设创意个人网页设计
  • wap网站 教程高效的宝安网站推广
  • 郑州网站托管助企网站的备案all
  • 做网站设计收入信息系统开发方法
  • 简述建设网站的步骤6做企业网站的人才
  • 开发一个企业网站报价亚马逊中国网站建设目标
  • 网站网站开发者犯法吗为什么有些网站看不到百度快照