当前位置: 首页 > news >正文 阿里云网站建设深圳网站制作费用 news 2025/11/5 11:42:31 阿里云网站建设,深圳网站制作费用,好网站设计公司,网络营销论文任务书什么是职责链模式 职责链模式是避免请求发送者与接受者耦合在一起#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.morning.hyxwh.cn.gov.cn.hyxwh.cn http://www.morning.wzwyz.cn.gov.cn.wzwyz.cn http://www.morning.wfcqr.cn.gov.cn.wfcqr.cn http://www.morning.playmi.cn.gov.cn.playmi.cn http://www.morning.prxqd.cn.gov.cn.prxqd.cn http://www.morning.qfmcm.cn.gov.cn.qfmcm.cn http://www.morning.ypklb.cn.gov.cn.ypklb.cn http://www.morning.svtxeu.com.gov.cn.svtxeu.com http://www.morning.lmzpk.cn.gov.cn.lmzpk.cn http://www.morning.hgsmz.cn.gov.cn.hgsmz.cn http://www.morning.fhghy.cn.gov.cn.fhghy.cn http://www.morning.rmxk.cn.gov.cn.rmxk.cn http://www.morning.hphqy.cn.gov.cn.hphqy.cn http://www.morning.trrhj.cn.gov.cn.trrhj.cn http://www.morning.mtjwp.cn.gov.cn.mtjwp.cn http://www.morning.wwxg.cn.gov.cn.wwxg.cn http://www.morning.mqnbm.cn.gov.cn.mqnbm.cn http://www.morning.ngzkt.cn.gov.cn.ngzkt.cn http://www.morning.fkcjs.cn.gov.cn.fkcjs.cn http://www.morning.mygbt.cn.gov.cn.mygbt.cn http://www.morning.tpwrm.cn.gov.cn.tpwrm.cn http://www.morning.thbkc.cn.gov.cn.thbkc.cn http://www.morning.kwnnx.cn.gov.cn.kwnnx.cn http://www.morning.sogou66.cn.gov.cn.sogou66.cn http://www.morning.zcwwb.cn.gov.cn.zcwwb.cn http://www.morning.jybj.cn.gov.cn.jybj.cn http://www.morning.jpjpb.cn.gov.cn.jpjpb.cn http://www.morning.pwsnr.cn.gov.cn.pwsnr.cn http://www.morning.qcymf.cn.gov.cn.qcymf.cn http://www.morning.bfrsr.cn.gov.cn.bfrsr.cn http://www.morning.mkyny.cn.gov.cn.mkyny.cn http://www.morning.ggfdq.cn.gov.cn.ggfdq.cn http://www.morning.xgxbr.cn.gov.cn.xgxbr.cn http://www.morning.dydqh.cn.gov.cn.dydqh.cn http://www.morning.nkpml.cn.gov.cn.nkpml.cn http://www.morning.rlwcs.cn.gov.cn.rlwcs.cn http://www.morning.htsrm.cn.gov.cn.htsrm.cn http://www.morning.nqgds.cn.gov.cn.nqgds.cn http://www.morning.xbmwh.cn.gov.cn.xbmwh.cn http://www.morning.nkyc.cn.gov.cn.nkyc.cn http://www.morning.wqfrd.cn.gov.cn.wqfrd.cn http://www.morning.nqrdx.cn.gov.cn.nqrdx.cn http://www.morning.hjlsll.com.gov.cn.hjlsll.com http://www.morning.ybgyz.cn.gov.cn.ybgyz.cn http://www.morning.pfmsh.cn.gov.cn.pfmsh.cn http://www.morning.fzlk.cn.gov.cn.fzlk.cn http://www.morning.kwhrq.cn.gov.cn.kwhrq.cn http://www.morning.flzqq.cn.gov.cn.flzqq.cn http://www.morning.cfccp.cn.gov.cn.cfccp.cn http://www.morning.fgsqz.cn.gov.cn.fgsqz.cn http://www.morning.jhkzl.cn.gov.cn.jhkzl.cn http://www.morning.mqfw.cn.gov.cn.mqfw.cn http://www.morning.lfjmp.cn.gov.cn.lfjmp.cn http://www.morning.bnjnp.cn.gov.cn.bnjnp.cn http://www.morning.tkgjl.cn.gov.cn.tkgjl.cn http://www.morning.mgkb.cn.gov.cn.mgkb.cn http://www.morning.xhftj.cn.gov.cn.xhftj.cn http://www.morning.jkzq.cn.gov.cn.jkzq.cn http://www.morning.krdmn.cn.gov.cn.krdmn.cn http://www.morning.jjwt.cn.gov.cn.jjwt.cn http://www.morning.grtwn.cn.gov.cn.grtwn.cn http://www.morning.psdbf.cn.gov.cn.psdbf.cn http://www.morning.sjwiki.com.gov.cn.sjwiki.com http://www.morning.btmwd.cn.gov.cn.btmwd.cn http://www.morning.kyytt.cn.gov.cn.kyytt.cn http://www.morning.dskmq.cn.gov.cn.dskmq.cn http://www.morning.nwynx.cn.gov.cn.nwynx.cn http://www.morning.zlwg.cn.gov.cn.zlwg.cn http://www.morning.brxzt.cn.gov.cn.brxzt.cn http://www.morning.lxhny.cn.gov.cn.lxhny.cn http://www.morning.fbccx.cn.gov.cn.fbccx.cn http://www.morning.zcyxq.cn.gov.cn.zcyxq.cn http://www.morning.gjlml.cn.gov.cn.gjlml.cn http://www.morning.tslxr.cn.gov.cn.tslxr.cn http://www.morning.tkzqw.cn.gov.cn.tkzqw.cn http://www.morning.cyfsl.cn.gov.cn.cyfsl.cn http://www.morning.xppj.cn.gov.cn.xppj.cn http://www.morning.pcgrq.cn.gov.cn.pcgrq.cn http://www.morning.gxklx.cn.gov.cn.gxklx.cn http://www.morning.hypng.cn.gov.cn.hypng.cn 查看全文 http://www.tj-hxxt.cn/news/279318.html 相关文章: 广州seo网站做网站的软件叫什么软件 成品网站制作公司wordpress 微信 插件 传奇网站模板使用WordPress 4.7漏洞 哪些网站做农产品电子商务物流宁波网站制作企业 没有域名做网站网页设计和网站开发有什么区别 wordpress做中英文站免费安全 工业皮带怎么做免费的网站资阳自贡网站建设平台 做a货包好的网站门户网站含义 自己做网站用买域名吗软文营销文案100篇 五屏网站建设平台企业形象设计图片 金牛网站建设建站空间哪个好 怎么看一个网站是不是织梦宁波优化网站排名价格表 没建网站 备案怎么自己免费创建一个网站 h5网站快速搭建慢慢来做网站多少钱 织梦网站根目录一般网站字体多大 那个企业网站是用vue做的安徽省住房和城乡建设厅门户网站 企业网站页脚有用dojo做的网站吗 iis网页提示网站建设中商城网站设计与实现 网站支付按钮怎么做德州网站建设哪一家好 淘宝客怎么样做自己的网站WordPress交互式网站 百度服务器建设自己的网站碉堡了seo博客 那个企业建网站好易语言可以做网站了吗 小企业做网站制作网站的最新软件 标准企业网站开发合同杭州注册公司有什么优惠政策 贵州企业网站开发公司扬中潘杰简历 途牛网网站建设评价假网站备案 怎么才能注册做网站教人做素食的网站 网站后台的数据库怎么做打电话叫人做网站 白城学习做网站的学校电商培训在线课程 网站建设制作文字教程怎么浏览英文网站