职责链模式
来源:互联网 发布:混合线性模型 知乎 编辑:程序博客网 时间:2024/05/29 10:58
简介
职责链模式:
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并且沿着这条链传递请求,知道有一个对象处理它为止。
常用的场景
1.有多个对象可以处理同一个请求,具体哪个对象处理该请求由运行时刻自动确定。
2.在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。
3.可动态指定一组对象处理请求。
优点:
1. 将请求和处理分开,达到解耦,迪米特。
缺点:
1. 链长度过长时就会有效率问题,其次是调试问题(这个问题也类似于递归)。
测试代码
#include <iostream>#include <assert.h>#include <vector>using namespace std;#include <string>#include <list>class FBaseHandler{public:virtual void handle(int x) = 0;virtual void setHandler(FBaseHandler* handler){m_pHighHander = handler;}protected:FBaseHandler* m_pHighHander;};class FHanderA : public FBaseHandler{public:void handle(int x){if( x > 0 && x< 10 ){//to do}else if(m_pHighHander != NULL){m_pHighHander->handle(x);}}};class FHanderB : public FBaseHandler{public:void handle(int x){if( x > 10 && x< 100 ){//to do}else if(m_pHighHander != NULL){m_pHighHander->handle(x);}}};void main(){FHanderA* pAHandler = new FHanderA();FHanderB* pBHandler = new FHanderB();pAHandler->setHandler(pAHandler);pAHandler->handle(10);delete pBHandler;delete pAHandler;}
阅读全文
0 0
- 职责链设计模式
- 职责链模式
- 职责链模式
- 职责链模式
- ChainOfResponsibility(职责链)模式
- 职责链模式ChainOfResponsibility
- 职责链模式
- 职责链模式 ResponsibilityChainPattern
- 【设计模式】职责链
- 职责链模式
- java职责链模式
- 职责链模式
- 职责链模式
- 职责链模式(python)
- 职责链模式
- 职责链模式
- 职责链模式
- 职责链模式
- linux实验2
- Android8.0 修改默认铃声 添加新铃声
- CentOS 删除OpenJDK并安装OracleJDK
- JS 判断URL中是否含有 http://
- ABAP OPEN SQL 模糊查询的方法
- 职责链模式
- window 下 使用 gdb
- 阶乘
- Nginx简介及使用Nginx实现负载均衡的原理
- 如何在SQL Server中的SELECT TOP 中使用变量
- js短路表达式
- jsp、资源、web应用的目录结构、Http协议
- 设计模式:代理模式
- Https 建立安全连接的过程(SSL原理)