職責鏈 設計模式

2021-09-11 17:00:19 字數 664 閱讀 3982

知識點

職責鏈(chain of responsibility)

知識內容

使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。

示例

#includeusing namespace std;

typedef int topic;

const topic no_help_topic = -1;

class helphandler

virtual bool hashelp()

virtual void sethandler(helphandler* h, topic t)

virtual void handlehelp()

}};class widget : public helphandler

};class button : public widget

virtual void handlehelp()

else

}};class dialog : public widget

virtual void handlehelp ()

else

}};};

int main()

鏈結

設計模式 職責鏈

一 功能 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。二 優缺點 客戶不知道它的請求將被哪個物件處理。三 實現 有兩種實現思路。一種是自己先處理,處理不成功了再交給其他人處理。另一種是先交給別人處理,...

設計模式 職責鏈模式

2008年08月17日 星期日 下午 04 28 using system using system.collections.generic using system.text public officer officer o public abstract void deal action a c...

設計模式 職責鏈模式

1 request.h ifndef request h define request h include include using namespace std class request 請求類定義 endif request h 2 manager.h ifndef manager h def...