二十、職責鏈模式

職責鏈模式(Chain of Responsibility)使多個對象都有機會處理請求,從而避免請求的發送者和接受者之間的耦合關係。將這個對象連成一條鏈,並沿着這條鏈傳遞該請求,知道有一個對象處理它爲止。

//Handler.h
#ifndef _HANDLER_H_
#define _HANDLER_H_
#include <iostream>
using namespace std;
class Handler
{
protected:
	Handler* _successor;
public:
	Handler()
	{
		_successor = 0;
	}
	void SetSuccessor(Handler* hd)
	{
		_successor = hd;
	}
	virtual void HandlRequest()=0;
};
class ConcreteHandler1:public Handler
{
public:
	void HandlRequest()
	{
		if (_successor)
//main.cpp
#include "Handler.h"

int main()
{
	Handler* hd = new ConcreteHandler1();
	hd->SetSuccessor(new ConcreteHandler2());

	hd->HandlRequest();
	return 0;
}



//main.cpp
#include "Handler.h"

int main()
{
	Handler* hd = new ConcreteHandler1();
	hd->SetSuccessor(new ConcreteHandler2());

	hd->HandlRequest();
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章