設計模式 職責鏈(學習)

2021-09-06 15:14:30 字數 1734 閱讀 1654

職責鏈--- 

///

///請求類 場景

/// 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操作

class

program

}

職責鏈模式 設計模式學習

職責鏈模式 chain of responsibility 使多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它位置。下面給出職責鏈模式的結構圖 下面給出職責鏈模式的基本 結構 namespace public a...

設計模式 職責鏈

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

職責鏈 設計模式

知識點 職責鏈 chain of responsibility 知識內容 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。示例 includeusing namespace std typedef int...