[设计模式]6. C++与职责链模式(chain of rsponsibility pattern)
生活随笔
收集整理的這篇文章主要介紹了
[设计模式]6. C++与职责链模式(chain of rsponsibility pattern)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
默默地EEer,原文地址:
http://www.cnblogs.com/hebaichuanyeah/p/5625233.html
?
職責鏈模式指使多個對象多有機會處理請求,避免請求發送者和接受者的耦合關系。
將這些接受處理的對象連成一條鏈,并沿著該鏈處理請求。
?
一個傳說中的應用情景:
假如去政府部門辦事,遇到了打字員小麗,在打LOL的小張以及主任老李,互相踢皮球推脫。
#include <iostream> using namespace std;class Handler { protected:string name;Handler * successor; public:Handler(){}virtual ~Handler(){}void setSuccessor(Handler * successor){this->successor = successor;}string getName(){return name;}virtual void HandleRequest(string str){} }; //傳說中的政府部分踢球皮球人員 class FootballPlayer : public Handler { public:FootballPlayer(string name){this->name = name;}virtual void HandleRequest(string str){if(name == str){cout<<this->name<<": 辦理事務.."<<endl;}else if(successor != NULL){cout<<this->name<<": 這個不歸我管,你去找"<<successor->getName()<<endl;successor->HandleRequest(str);}else{cout<<this->name<<": 這個辦不了啦"<<endl;}} };main() {Handler * xiaoli = new FootballPlayer("打字員小麗");Handler * xiaozhang = new FootballPlayer("在打lol的小張");Handler * laoli = new FootballPlayer("主任老李");//小麗把皮球踢給小張xiaoli->setSuccessor(xiaozhang);xiaozhang->setSuccessor(laoli);laoli->setSuccessor(NULL);xiaoli->HandleRequest("辦個事"); }?
轉載于:https://www.cnblogs.com/hebaichuanyeah/p/5625233.html
總結
以上是生活随笔為你收集整理的[设计模式]6. C++与职责链模式(chain of rsponsibility pattern)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 水系图一般在哪里找得到_广东工业大学《J
- 下一篇: C/C++ 中判断某一文件或目录是否存在