設計模式 職責鏈模式

2021-07-10 22:07:33 字數 1232 閱讀 8461

osg使用職責鏈的設計模式,以載入盡量少的外掛程式。

職 責鏈模式:使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處 理它為止。其思想很簡單,考慮員工要求加薪。公司的管理者一共有**,總經理、總監、經理,如果乙個員工要求加薪,應該向主管的經理申請,如果加薪的數量 在經理的職權內,那麼經理可以直接批准,否則將申請上交給總監。總監的處理方式也一樣,總經理可以處理所有請求。這就是典型的職責鏈模式,請求的處理形成 了一條鏈,直到有乙個物件處理請求。給出這個例子的uml圖。

經理class commonmanager : public

manager

void dealwithrequest(string name,int

num)

else

}};class majordomo:public

manager

virtual

void dealwithrequest(string name,int

num)

else

}};class generalmanager : public

manager

void dealwithrequest(string name,int

num)

};客戶端使用:

#include #include 

"state.h

"using

namespace

std;

intmain()

說明:

1. 職責鏈的特點是:當客戶提交乙個請求時,請求是沿鏈傳遞直至有乙個manager物件負責處理它。

2. 職責鏈的好處是:請求者不用管哪個物件來處理,反正該請求會被處理。它只需保持乙個後繼者即可。

3. 要注意的是:乙個請求到鏈的最後可能也沒有處理,所以一定要配置得當。

設計模式 職責鏈模式

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...

設計模式 職責鏈模式

今天跟大家分享下設計模式中的職責鏈模式。不知道大家在學習職責鏈模式的時候是否感覺困難。我剛開始學的時候就被整暈了。呵呵,進入正題。職責鏈模式是物件行為型模式中比較有特點的設計模式了,的確有意思,它可以像資料結構中煉表一樣傳遞。其實生活中好多的行為方式都體現了職責鏈模式,我們初期學習者可以把職責鏈模式...