设计模式—责任链模式(二十)
来源:互联网 发布:淘宝下架的宝贝在哪里找 编辑:程序博客网 时间:2024/06/14 11:00
软件领域中的设计模式的重要性不言而喻。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。虽然知道这些特性的定义但是并没有做到真正的理解,这样特性有什么作用?用于什么场合中等等问题,带着疑问开始学习设计模式,主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。
责任链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理为止。
责任链很好理解就是基类和不同子类组成的“链”式结构;
#include <iostream>#include <string>#include <vector>using namespace std;//请求class Request{public:string m_strContent;int m_nNumber;string requestType;};//管理者class Manager{protected:Manager* manager;string name;public:Manager(string temp){name = temp;}void SetSuccessor(Manager* temp){manager = temp;}virtual void GetRequest(Request* request) = 0;};//经理class CommonManager : public Manager{public:CommonManager(string strTemp) : Manager(strTemp){}virtual void GetRequest(Request* request){if (request->requestType=="请假" && request->m_nNumber<10){cout << name << " 请假" << request->m_nNumber << " 天" << endl;}else{manager->GetRequest(request);}}};//总监class MajorDomo : public Manager{public:MajorDomo(string name) : Manager(name){}virtual void GetRequest(Request* request){if (request->requestType == "请假" && request->m_nNumber >= 10){cout << name << " 请假" << request->m_nNumber << " 天" << endl;}}};//客户端int main(){Manager * common = new CommonManager("张经理");Manager * major = new MajorDomo("李总监");common->SetSuccessor(major);Request* req = new Request();req->requestType = "请假";req->m_nNumber = 33;common->GetRequest(req);req->m_nNumber = 3;common->GetRequest(req);return 0;}
阅读全文
0 0
- 设计模式—责任链模式(二十)
- Java设计模式《二十》责任链模式
- 十 设计模式之责任链模式
- 设计模式之十:责任链模式
- java设计模式--责任链(二)
- Tomcat设计模式-责任链模式(二)pipeline valve
- 设计模式之二十:责任链模式(Chain of Responsibility)
- 设计模式(二十)——职责链模式
- 责任链 模式(二)
- java设计模式--责任链(二)
- 设计模式——责任链模式
- 设计模式——责任链模式
- 设计模式——责任链模式
- 设计模式——责任链模式
- 设计模式——责任链模式
- 设计模式——责任链模式
- 设计模式——责任链模式
- 【设计模式】——责任链模式
- mybatis入门使用1:mybatis框架搭建和增删改查
- view对象的渲染步骤
- Spring Boot的启动器
- Android的第一次课_上课代码_上课实例_TextView控件_LinearLayout_gravity属性
- 解决jquery选择器id中带点的获取不到
- 设计模式—责任链模式(二十)
- 前端网站资源精编!!
- JAVA 封装的定义
- python判断英文
- memcached安装
- 数据结构——00基本概念
- Android 开发者的 RxJava 详解
- C语言经典面试题(基础题)
- Oracle Commit