ChainOfResponsibility

#include <iostream>

using namespace std;

class Chain
{
public:
    bool Handle() { return false; }
};

class Level1 : public Chain
{
public:
    bool Handle()
    {
        cout<<"Level1::true"<<endl;
        return true;

    }
};

class Level2 : public Level1
{
public:
    bool Handle()
    {
        cout<<"Level2::Handle"<<endl;
        return Level1::Handle();
    }
};

class Level3 : public Level2
{
public:
    bool Handle()
    {
        cout<<"Level3::Handle"<<endl;
        return Level2::Handle();
    }
};

int main(int argc, char *argv[])
{
    Level3 level3;
    level3.Handle();

    return 0;
}
时间: 2024-10-15 17:51:48

ChainOfResponsibility的相关文章

设计模式之责任链模式--- Pattern chain-of-responsibility

模式的定义 责任链模式定义如下: Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.Chain the receiving objects and pass the request along the chain until an object handles it. 使多个对象都有机会处理请求,从而避免请求的发送

chainOfResponsibility责任链模式

责任链(Chain of Responsibility)模式 : 责任链模式是对象的行为模式.使多个对象都有机会处理请求,从而避免请求的发送者和接受者直接的耦合关系.将这些处理对象连成一条链,沿着这条链传递该请求,直到有一个对象处理它为止.责任链模式强调的是每一个对象及其对下家的引用来组成一条链,利用这种方式将发送者和接收者解耦,类图如下: 通过上图可以看出责任链模式有两个角色: 抽象处理者(Handler)角色 :定义一个请求的接口.如果需要可以定义个一个方法用来设定和返回下家对象的引用. 具

【设计模式】—— 职责链模式ChainOfResponsibility

前言:[模式总览]——————————by xingoo 模式意图 避免请求的发送者,和接受者过度的耦合在一起.一个请求者只需要发送一个请求即可,它的请求具体由后面哪个对象进行响应,并不需要关心.而请求的接受者可以自己处理它,也可以把它像链条一样向后传. 因此,请求也就意味着有可能丢失,或者说没有确切的安全保障. 应用场景 1 降低耦合度 2 增强指派职责的灵活性 3 不保证被接受 模式结构 Handler 定义一个接口,实现向后传递的过程 1 abstract class Handler{ 2

学习笔记——责任链模式ChainOfResponsibility

责任链模式,主要是通过自己记录一个后继者来判断当前的处理情况.Handler中,再增加一个方法用于设置后继对象,如SetHandler(Handler obj). 然后Handler类以其子类的处理方法Handler()通过判断后继对象是否存在来操作: 1.没有设置后继对象,自己处理事件 2.有后继对象,交给后继者的Handler()处理. 通过这样的不断调用传递,处理责任将到达最终的对象上. 比如,当我们要处理一个网络请求返回时,一般肯定是写一串函数,然后通过判断来依次执行相应操作,如果采用责

责任链模式(chainOfResponsibility)

参考文章:http://wiki.jikexueyuan.com/project/design-pattern-behavior/chain-four.html 定义: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. 分类: 纯的职责链模式 一个纯的职责链模式要求一个具体处理者对象只能在两个行为中选择一个:要么承担全部责任,要么将责任推给下家,不允许出现某一个具体处理者对象在承担了一部分或全部责任后

责任链(ChainOfResponsibility)模式

在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出请求的客户端并不知道链上的哪一个对象,这使得系统可以在不影响客户端的情况下动态地重新组织链和分配责任. 1.  从击鼓传花谈起 击鼓传花是一种热闹而紧张的游戏.在酒宴上宾客依次坐定位置,由一人击鼓,击鼓的地方与传花的地方是分开的,以示公正.开始击鼓时,花束就开始依次传递,鼓声一落,如果花束在某人手中,则该人就得饮酒. 比如说,贾母.贾赦.贾政.贾宝玉和贾环是五个参加

职责链模式(Chain of Responsibility)

一.责任链模式介绍 责任链模式:将能够处理同一类请求的对象连成一条链,使这些对象都有机会处理请求,所提交的请求沿着链传递.从而避免请求的 发送者和接受者之间的耦合关系.链上的对象逐个判断是否有能力处理该请求,如果能则就处理,如果不能,则传给链上的下一个对象. 直到有一个对象处理它为止. 场景: 1.打牌时,轮流出牌 2.接力赛跑 3.请假审批 4.公文审批 责任链UML图: Handler:表示处理请求的接口,在这个接口里可以定义链上的下一个继承者,和一个处理请求的抽象方法. ConcreteH

设计模式学习-责任链模式

1.定义 避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止. 2.类图 3.代码示例 1 package com.zhaoyangwoo.chainOfResponsibility; 2 3 /** 4 * Created by john on 16/6/16. 5 * 职责链模式,经费审批场景 6 */ 7 public class Responsibility { 8 9 public static void

设计模式初识

首先声明的是我对设计模式了解比较少,也才是刚刚接触,还有很多不懂的地方,这里写blog只是为了记录下看c++编程思想中的设计模式这一章,以便后续查看. 设计模式是国外4人合编的<Design Patterns>一书,这本书一般也被称为"四人帮"(Gangof  Four, GoF)书."四人帮"针对问题的特定类型提出了23中解决方案,即23个模式.定义为:每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题解决方案的核心. 当人们对某事物进行抽象