職責鏈---
//////請求類 場景
/// class
context
private
intday;
public
intday
set
}}
**剖析
首先,該模式運用的是最基本的繼承關係
1,抽象類--提供操作人的姓名,並儲存乙個該類的例項,同時提供乙個抽象的pass方法
//////抽象基類
/// abstract
class
handler
private
string
_name;
public
string
name
set
}private
handler _handler;
public
handler handler
set
}//是否通過
public
abstract
bool
pass(context context);
}
子類--用於重寫pass方法,給物件的handler賦值,在pass方法中通過呼叫指定handler屬性實現一級一級的向下傳遞(這裡的handler為下一級別的更高許可權的操作)
//////部門經理 2天以下的部門簽字就成了
//////
public
class
manager : handler
public
override
bool
pass(context context)
已經簽字通過
", name);
return
true
; }
return
handler.pass(context);}}
//////
總經理 2天以上需要總經理簽字
/// public
class
generalmanager : handler
public
override
bool
pass(context context)
已經簽字通過
", name);
return
true
; }
return
handler.pass(context);}}
//////
董事長 7天以上需要總經理簽字
/// public
class
president : handler
public
override
bool
pass(context context)
已經簽字通過
", name);
return
true
; }
return
handler.pass(context);
}}
操作**--通過指定的天數,判斷是哪個級別的範圍,不在本類範圍內的交給handler操作
classprogram
}
職責鏈模式 設計模式學習
職責鏈模式 chain of responsibility 使多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它位置。下面給出職責鏈模式的結構圖 下面給出職責鏈模式的基本 結構 namespace public a...
設計模式 職責鏈
一 功能 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。二 優缺點 客戶不知道它的請求將被哪個物件處理。三 實現 有兩種實現思路。一種是自己先處理,處理不成功了再交給其他人處理。另一種是先交給別人處理,...
職責鏈 設計模式
知識點 職責鏈 chain of responsibility 知識內容 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。示例 includeusing namespace std typedef int...