设计模式[2]-Chain of Responsibility

简介:

Type: Behavioral


#include <iostream>  
using namespace std;  
typedef int Request;  

class Handler  
{  
public:  
    Handler(Handler *pSuccessor = NULL):m_pSuccessor(pSuccessor){};  
    // 纯虚函数,由派生类实现  
    virtual void handleRequest(Request request) = 0;  

protected:  
    Handler* m_pSuccessor;  
};  

class ConcreateHandler1: public Handler  
{  
public:      
    void handleRequest(Request request)  
    {  
        if(request > 0)  
        {  
            cout<<"ConcreateHandler1 handle request."<<endl;  
        } else {  
            if(m_pSuccessor != NULL){  
                m_pSuccessor->handleRequest(request);  
            }  
        }  

    }  
};  

class ConcreateHandler2: public Handler  
{  
public:  
    ConcreateHandler2(Handler *pSuccessor = NULL){  
        m_pSuccessor = pSuccessor;  
    }  
    void handleRequest(Request request)  
    {  
        if(request > 10)  
        {  
            cout<<"ConcreateHandler2 handle request."<<endl;  
        } else {  
            if(m_pSuccessor != NULL){  
                m_pSuccessor->handleRequest(request);  
            }  
        }  

    }  
};  

int main()  
{  
    Handler *p1 = new ConcreateHandler1();  
    Handler *p2 = new ConcreateHandler2(p1);  
    Request request = 1;  
    p2->handleRequest(request);  
    request = 12;  
    p2->handleRequest(request);  
    system("pause");  
    return 0;  
}

目录
相关文章
|
5月前
|
设计模式 安全 Java
设计模式之责任链 Chain Of Responsibility
设计模式之责任链 Chain Of Responsibility
36 1
|
5月前
|
设计模式 Java
【设计模式】JAVA Design Patterns——Chain of responsibility(责任链模式)
【设计模式】JAVA Design Patterns——Chain of responsibility(责任链模式)
|
5月前
|
设计模式
二十三种设计模式全面解析-职责链模式(Chain of Responsibility Pattern):解放代码责任链,提升灵活性与可维护性
二十三种设计模式全面解析-职责链模式(Chain of Responsibility Pattern):解放代码责任链,提升灵活性与可维护性
|
10月前
|
设计模式 Java 应用服务中间件
认真学习设计模式之职责链模式((Chain of Responsibility Pattern)
认真学习设计模式之职责链模式((Chain of Responsibility Pattern)
84 0
|
12月前
|
设计模式 JavaScript Java
设计模式17 - 责任链模式【Chain of Responsibility Pattern】
设计模式17 - 责任链模式【Chain of Responsibility Pattern】
40 0
|
12月前
|
设计模式 Java 应用服务中间件
【设计模式——学习笔记】23种设计模式——职责链/责任链模式(Chain of Responsibility)(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——职责链/责任链模式(Chain of Responsibility)(原理讲解+应用场景介绍+案例介绍+Java代码实现)
132 0
|
12月前
|
设计模式 JavaScript Java
设计模式~责任链模式(Chain of Responsibility)-12
目录 (1)优点 (2)缺点 (3)使用场景 (4)注意事项: (5)应用实例: (6)经典案例 代码
47 0
|
设计模式 Java uml
Java中23种面试常考的设计模式之责任链模式(Chain of Responsibility)---行为型模式
Java中23种面试常考的设计模式之责任链模式(Chain of Responsibility)---行为型模式
90 1
|
6天前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
21天前
|
设计模式 算法 安全
设计模式——模板模式
模板方法模式、钩子方法、Spring源码AbstractApplicationContext类用到的模板方法
设计模式——模板模式