20 关卡设计-责任链(Chain of Responsibility)

 1 /// <summary>
 2 /// 处理信息的接口
 3 /// </summary>
 4 public abstract class Handler {
 5
 6     /// <summary>
 7     /// 下一个请求接收者
 8     /// </summary>
 9     protected Handler m_NextHandler = null;
10
11     public Handler(Handler theNextHandler) {
12         m_NextHandler = theNextHandler;
13     }
14
15     public virtual void HandleRequest(int Cost) {
16         if(m_NextHandler != null) {
17             m_NextHandler.HandleRequest(Cost);
18         }
19     }
20 }

Handler

 1 /// <summary>
 2 /// 处理所负责的信息1
 3 /// </summary>
 4 public class ConcreteHandler1:Handler {
 5
 6     private int m_CostCheck = 10;
 7
 8     public ConcreteHandler1(Handler theNextHandler) : base(theNextHandler) {
 9
10     }
11
12     public override void HandleRequest(int Cost) {
13         if(Cost <= m_CostCheck) {
14             Debug.Log("ConcreteHandler1.HandleRequest核准");
15         } else {
16             base.HandleRequest(Cost);
17         }
18     }
19 }

ConcreteHandler1

 1 /// <summary>
 2 /// 处理所负责的信息2
 3 /// </summary>
 4 public class ConcreteHandler2:Handler {
 5
 6     private int m_CostCheck = 20;
 7
 8     public ConcreteHandler2(Handler theNextHandler) : base(theNextHandler) {
 9
10     }
11
12     public override void HandleRequest(int Cost) {
13         if(Cost <= m_CostCheck) {
14             Debug.Log("ConcreteHandler2.HandleRequest核准");
15         } else {
16             base.HandleRequest(Cost);
17         }
18     }
19 }

ConcreteHandler2

 1 /// <summary>
 2 /// 处理所负责的信息3
 3 /// </summary>
 4 public class ConcreteHandler3:Handler {
 5
 6     public ConcreteHandler3(Handler theNextHandler) : base(theNextHandler) {
 7
 8     }
 9
10     public override void HandleRequest(int Cost) {
11         Debug.Log("ConcreteHandler3.HandleRequest核准");
12     }
13 }

ConcreteHandler3

时间: 2024-10-07 14:39:03

20 关卡设计-责任链(Chain of Responsibility)的相关文章

Java 实现责任链(Chain of Responsibility)模式

类图 /** * 抽象责任 * @author stone * */ public abstract class IFilter { private IFilter successor; public IFilter getSuccessor() { return successor; } public void setSuccessor(IFilter successor) { this.successor = successor; } public abstract void handleF

c++ 行为型模式-责任链(Chain of Responsibility)

1) 意图 使多个对象连成一条链,沿着这条链传递请求,直到有个对象处理它为止. 2) 结构 其中: Handler定义一个处理请求的接口 ConcreteHandler处理它所负责的请求 Client向链上具体处理提交请求 3) 适用性 有多个对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定 想在不明确指定接收者的情况下向多个对象中的一个提交一个请求 可处理一个请求的对象集合应被动态指定 4) 举例 1 #include <iostream> 2 #include <list&g

(20):(行为型模式) Chain Of Responsibility 职责链模式

(20):(行为型模式) Chain Of Responsibility 职责链模式,布布扣,bubuko.com

C++设计模式实现--职责链(Chain of Responsibility)模式

一. 概述 职责链模式: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. 二. 举个例子 员工要求加薪 公司的管理者一共有三级:总经理.总监.经理,如果一个员工要求加薪,应该向主管的经理申请,如果加薪的数量在经理的职权内,那么经理可以直接批准,否则将申请上交给总监.总监的处理方式也一样,总经理可以处理所有请求.这就是典型的职责链模式,请求的处理形成了一条链,直到有一个对象处理请求. 结构图如下: 假

JAVA设计模式(13):行为型-责任链模式(Responsibility)

定义 将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求, 如果能则处理,如果不能则传递给链上的一个对象. 场景: 打牌时,轮流出牌 接力赛跑 大学中,奖学金审批 公司中,公文审批 开发中常见的场景: Java中,异常机制就是一种责任链模式.一个try可以对应多个catch,当第一个catch不匹配类型,则自动跳到第二个catch. Javascript语言中,事件的冒泡和捕获机制.Java语言中,事件的处理采用观察者模式. Servlet开发中

java责任链模式及项目实际运用

1.前言 上次我们认识了java责任链模式的设计,那么接下来将给大家展示责任链模式项目中的实际运用.如何快速搭建责任链模式的项目中运用. 2.简单技术准备 我们要在项目中使用借助这样的几个知识的组合运用,才能更好的诠释. 必备技能:简单注解的定义:Spring拦截器的使用:简答的责任链模式的定义: 拥有以前的准备的知识点的,我们就可以快速搭建责任链来做安全校验了. 3. 场景模拟 场景: 系统中我们需要一些安全校验结构,如登陆校验与角色校验.接下来我们使用责任链模式来开发这个流程化校验. 4.

设计模式(13)--Chain of Responsibility(责任链模式)--行为型

1.模式定义: 责任链模式是一种对象的行为模式.在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任. 2.模式特点: 责任链模式通过建立一条链来组织请求的处理者,请求将沿着链进行传递,请求发送者无须知道请求在何时.何处以及如何被处理,实现了请求发送者与处理者的解耦.在软件开发中,如果遇到有多个对象可

GOF23设计模式之责任链模式(chain of responsibility)与结构型模式总结经典

 责任链模式:Chain of responsibility      将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象. 场景:      打牌时,轮流出牌.      接力赛跑      大学中,奖学金审批.      公司中,公文审批.   结构型模式汇总: 代理模式:为真实对象提供一个代理,从而控制对真实对象的访问. 适配器模式:使原本由于接口不兼容不能一起工作的类,可以一起工作. 桥

第 17 章 责任链模式【Chain of Responsibility Pattern】

以下内容出自:<<24种设计模式介绍与6大设计原则>> 中国古代对妇女制定了“三从四德”的道德规范,“三从”是指“未嫁从父.既嫁从夫.夫死从子”,也就是说一个女性,在没有结婚的时候要听从于父亲,结了婚后听从于丈夫,丈夫死了还要听儿子的,举个例子来说,一个女的要出去逛街,同样这样的一个请求,在她没有出嫁前她必须征得父亲的同意,出嫁之后必须获得丈夫的许可,那丈夫死了怎么办?一般都是男的比女的死的早,还要问问儿子是否允许自己出去逛街,估计你下边马上要问要是没有儿子怎么办?请示小叔子.侄子