




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
职责链 ChainofResponsibility 模式 从击鼓传花谈起 击鼓传花是一种热闹而又紧张的饮酒游戏 在酒宴上宾客依次坐定位置 由一人击鼓 击鼓的地方与传花的地方是分开的 以示公正 开始击鼓时 花束就开始依次传递 鼓声一落 如果花束在某人手中 则该人就得饮酒 击鼓传花便是职责链模式的应用 职责链可能是一条直线 一个环链或者一个树结构的一部分 实例 公司申请聚餐费用公司申请差旅费用 问题 聚餐费用申请的处理流程是可能会变动的各个处理环节的业务处理也是会变动的 问题抽象 客户端发出一个请求 会有很多对象都可以来处理这个请求 而且不同对象的处理逻辑是不一样的 对于客户端而言 无所谓谁来处理 反正有对象处理就可以了 而且在上述处理中 还希望处理流程是可以灵活变动的 而处理请求的对象需要能方便地修改或者是被替换掉 以适应新的业务功能的需要 解决方案 职责链 ChainofResponsibility 模式使多个对象都有机会处理请求 从而避免请求的发送者和接收者之间的耦合关系 将这个对象连成一条链 并沿着这条链传递该请求 直到有一个对象处理它为止 解决问题的思路 动态构建流程步骤 这样随时可以重新组合出新的流程来 抽象处理者 Handler 角色 定义出一个处理请求的接口 如果需要 接口可以定义出一个方法 以设定和返回对下家的引用 这个角色通常由一个抽象类或接口实现 具体处理者 ConcreteHandler 角色 具体处理者接到请求后 可以选择将请求处理掉 或者将请求传给下家 由于具体处理者持有对下家的引用 因此 如果需要 具体处理者可以访问下家 处理过程 ChainofResponsibility模式中ConcreteHandler将自己的后继对象 向下传递消息的对象 记录在自己的后继表中 当一个请求到来时 ConcreteHandler会先检查看自己有没有匹配的处理程序 如果有就自己处理 否则传递给它的后继 示意代码 abstractclassHandler protectedHandlersuccessor publicvoidSetSuccessor Handlersuccessor this successor successor publicabstractvoidHandleRequest intrequest classConcreteHandler1 Handler publicoverridevoidHandleRequest intrequest if request 0 classConcreteHandler2 Handler publicoverridevoidHandleRequest intrequest if request 10 classConcreteHandler3 Handler publicoverridevoidHandleRequest intrequest if request 20 客户端 classProgram staticvoidMain string args Handlerh1 newConcreteHandler1 Handlerh2 newConcreteHandler2 Handlerh3 newConcreteHandler3 h1 SetSuccessor h2 h2 SetSuccessor h3 int requests 2 5 14 22 18 3 27 20 foreach intrequestinrequests h1 HandleRequest request Console Read 在客户端设置关联 责任链模式降低了请求的发送端和接收端之间的耦合 使多个对象都有机会处理这个请求 一个链可以是一条线 一个树 也可以是一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 应急安全培训题库大全课件
- 2025广东机电职业技术学院第二批招聘工作人员11人笔试备考试题含答案详解
- 新生儿感染性疾病的病原学分类与传播途径
- 土地抵押合同(标准版)
- 中介和买家合同(标准版)
- 2025年环保设备制造业竞争激烈产品创新趋势分析报告
- 2025年工业互联网平台增强现实交互技术在虚拟现实工厂中的应用报告
- 2025年母婴用品跨境电商行业发展趋势与市场机会研究报告
- 中考英语一轮复习完形填空汇编知识点-+典型题及解析
- 山东省德州市2024-2025学年高三下学期三模化学试题(含答案)
- 国歌课件教学课件
- 江苏省家政服务合同派遣制4篇
- 农业农村部在京事业单位招聘考试真题2024
- 东营市专业技术人员继续教育公共服务平台-题库(答案)
- 2024八年级道德与法治上册知识点
- 航模课件教学课件
- 看守所巡控岗位课件
- 2025秋冀人版(2024)科学二年级上册教学计划、教学设计(附目录)
- 第十四章 全等三角形 单元测试(含部分解析) 2025-2026学年人教版八年级数学上册
- 2025年中式烹调师(技师)考试题库及答案
- (高清版)DBJ∕T 13-91-2025 《福建省房屋市政工程安全风险分级管控与隐患排查治理标准》
评论
0/150
提交评论