CHAIN OF RESPONSIBILITY 책임 연쇄 패턴
- 메세지를 보내는 객체와 메세지를 받아 처리하는 객체들 간의 결합도를 없애줌.
- 하나의 요청에 대한 처리를 여러 객체에게 전달함.
- 자식으로부터 부모로
#include <iostream> using namespace std; class Handler{ public: Handler(Handler* s) : _successor(s) {} virtual void HandleRequset(int i){ if(_successor != NULL) _successor->HandleRequset(i); else cout << "Handler" << endl; } private: Handler* _successor; }; class ConcreteHandler1 : public Handler{ public: ConcreteHandler1(Handler* ptrs) : Handler(ptrs) {} void HandleRequset(int i) override{ if(i == 1) cout<< "Handler 1" <<endl; else Handler::HandleRequset(i); } }; class ConcreteHandler2: public Handler{ public: ConcreteHandler2(Handler* ptrs) : Handler(ptrs) {} void HandleRequset(int i) override{ if(i == 2) cout<< "Handler 2" <<endl; else Handler::HandleRequset(i); } }; int main(){ Handler* prtHandler = new ConcreteHandler1(new ConcreteHandler2(NULL)); prtHandler->HandleRequset(1); prtHandler->HandleRequset(2); prtHandler->HandleRequset(3); return 0; }
'Study > Design Patterns c++' 카테고리의 다른 글
Design Patterns COMMAND 명령 패턴 (0) | 2018.08.03 |
---|---|
Design Patterns ABSTRACT FACTORY 추상 팩토리 패턴 C++ (0) | 2018.07.03 |
Design Patterns PROXY 프록시 패턴 C++ (0) | 2018.07.02 |
Design Patterns FLYWEIGHT 플라이급 패턴 패턴 C++ (0) | 2018.07.02 |
Design Patterns FACADE 퍼사드 패턴 C++ (0) | 2018.06.19 |