• 责任链模式:使多个对象都有机会处理请求,从而避免发送者和接受者之间发生耦合。
  • 应用场景:
    •   有多个对象可以处理请求,而处理程序只有在运行时才能确定
  • 例如:  英雄联盟中伤害计算,伤害类型分为AP、AD、真实伤害(无视任何防御直接造伤害)。

            

  • 结构分析:整个结构就在这个攻击处理器的抽象。抽象一个属性,下一个处理器(newxHandler)、抽象一个方法,处理攻击(handleAttack)

    1 -(void)handleAttack:(attack *)attack{
    2      [nextHandler handleAttack:attack];
    3 }

    handler

    然后有魔法处理器、物理处理器继承攻击处理器并且重写了handleAttack方法。在使用的时候创建不同的处理期并且将nextHandler赋值。这样就可以构成一个链。比如链如(魔法处理器->物理处理器->人)那么一次物理攻击来了之后会交给魔法处理器调用HandleAttack来处理,其中发现魔法处理器不可以处理物理伤害,那么则调用【Next handleAttack:attack】而魔法处理器的next是物理处理器,这样就做到事件传递。正巧物理处理器可以处理物理伤害,那么这次伤害就被抵消。

  • 总结延伸:Cocoa Touch中的响应链也是如此。事件在当前所在的lowestView中处理,发现响应不了,那么这个事件就会按照设定的响应链条传递给nextResponsder处理一直向上传递知道可以被响应或者crash

转载于:https://www.cnblogs.com/conorBlogs/p/5477225.html

iOS设计模式解析(五)责任链模式相关推荐

  1. 简易理解设计模式之:责任链模式——OA中请假流程示例

    介绍: 责任链模式属于行为型设计模式.它的定义为:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,只到有对象处理它为止. 类图: ...

  2. 《java设计模式》之责任链模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模式.在责任链模式里,很多对象由每一个对象对其 ...

  3. Java描述设计模式(15):责任链模式

    本文源码:GitHub·点这里 || GitEE·点这里 一.生活场景描述 1.请假审批流程 公司常见的请假审批流程:请假天数 当 day<=3 天,项目经理审批 当 3<day<= ...

  4. [设计模式-行为型]责任链模式(Chain of Responsibility)

    概括 名称 Chain of Responsibility 结构 动机 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一 ...

  5. 设计模式-请假流程-责任链模式

    责任链模式的定义 ​ 首先我们可以先看一下责任链模式的定义: ​ Avoid coupling the sender of a request to its receiver by giving mo ...

  6. 设计模式探索之责任链模式

    责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链.这种模式给予请求的类型,对请求的发送者和接收者进行解耦.这种类型的设计模式属于行为型模式. ...

  7. 《JAVA设计模式系列》责任链模式

    文章目录 责任链模式 责任链模式优缺点 应用场景 责任链模式的结构 实现流程 责任链模式 责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链.这 ...

  8. 【手写源码-设计模式15】-责任链模式-基于人事请假单工作流场景

    1:主题拆解 ①基本介绍 ②人事请假单工作流模拟 ③责任链模式的优缺点 ④适用场景 ⑤应用实例 ⑥ASP.NET 管道模型 2:基本介绍 责任链模式很像异常的捕获和处理,当一个问题发生的时候,当前对象 ...

  9. [设计模式] javascript 之 责任链模式

    责任链模式:定义 责任链接模式又称职责链模式,是一种对象的行为模式:它是一种链式结构,每个节点都有可能两种操作,要么处理该请求停止该请求操作,要么把请求转发到下一个节点,让下一个节点来处理请求:该模式 ...

  10. [Android设计模式之旅]——责任链模式

    介绍 责任链模式(Chain of Responsibility Pattern)就是当我们发送一个请求后,沿着一个任务链执行,任务链上每个对象都能处理该请求,如果一个对象不处理,就会传递给下一个对象 ...

最新文章

  1. css绘制卡券优惠券_css3 绘制优惠券
  2. Effective stl---笔记
  3. 数组去重(包括es6)
  4. 【Qt】QModbusTcpConnectionObserver类
  5. HDU 2822 Dogs【两次bfs】
  6. bat 批处理获取时间语法格式
  7. ubuntu经常提示:检测到系统程序出现问题
  8. linux下的网桥介绍
  9. Spring Boot学习总结(5)——SpringBoot Jar应用Linux后台部署执行
  10. PostgreSQL 10 高可用 本地SSD盘 版本发布
  11. input[type=radio]自定义样式
  12. bcc语料库下载_大数据背景下BCC语料库的研制_荀恩东
  13. php中如何计算字符串长度,PHP字符串长度计算 - strlen()函数使用介绍
  14. ubuntu下载安装jdk
  15. 盘古开源:汽车芯片短缺怎样缓解?工信部回应热点问题
  16. 联通集团入选混改试点:电联合并已无希望
  17. python 小于号和大于号同时使用
  18. Pygame详解(十六):cursors 模块
  19. WPF引入OCX控件
  20. 王杰高中计算机老师,王杰 - 师资概况 - 南方科技大学

热门文章

  1. Atitit.php opcode虚拟机指令集 分类以及详细解释
  2. paip.c++ gui 库HtmLayout 的优缺点 QT优点
  3. 技术揭秘 | 如何设计 RQData 通讯协议
  4. (转)5分钟APIG实战: 使用Rust语言快速构建API能力开放
  5. 支付那些事儿III---一个BD汪眼中的产品I
  6. (转)NYU教授给写AI新闻的记者们写了一封推心置腹的信,你也应该读读
  7. (转)金融从业者将被人工智能取代?
  8. 亲历者说:Kubernetes API 与 Operator,不为人知的开发者战争
  9. 【图像加密】基于matlab GUI+Logistic+Tent+Kent+Henon图像加密与解密【含Matlab源码 1745期】
  10. 【目标定位】基于matlab循环增益卡尔曼滤波目标定位仿真【含Matlab源码 145期】