1.Chain of Responsibility模式:将可能处理一个请求的对象链接成一个链,并将请求在这个链上传递,直到有对象处理该请求(可能需要提供一个默认处理所有请求的类,例如MFC中的CwinApp类)。

2.Chain of Responsibility Pattern 结构图

Chain of Responsibility Pattern

3.实现

 1 #ifndef _HANDLE_H_ 
 2 #define _HANDLE_H_
 3 
 4 class Handle 
 5 { 
 6 public: 
 7     virtual ~Handle();
 8     virtual void HandleRequest() = 0;
 9     void SetSuccessor(Handle* succ);
10     Handle* GetSuccessor();
11 
12 protected: 
13     Handle();
14     Handle(Handle* succ);
15 
16 private: 
17     Handle* _succ; 
18 };
19 
20 class ConcreteHandleA:public Handle 
21 { 
22 public: 
23     ConcreteHandleA();
24     ~ConcreteHandleA();
25     ConcreteHandleA(Handle* succ);
26     void HandleRequest();
27 
28 protected:
29 private:
30 };
31 
32 class ConcreteHandleB:public Handle 
33 { 
34 public: 
35     ConcreteHandleB();
36     ~ConcreteHandleB();
37     ConcreteHandleB(Handle* succ);
38     void HandleRequest();
39 protected:
40 private:
41 };
42 
43 #endif
Handle.h

相关文章: