設計模式之職責鏈模式

2021-09-13 02:47:02 字數 810 閱讀 4315

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

當我寫乙個請假審批的時候,它首先到部門經理,再到總監,再到總經理,根據需求不同。

它和普通的判斷的最大區別就是普通判斷你將會把所有引用都放到乙個方法,這樣這個方法就回很龐大,耦合度很高,當我們分開去判斷(每個類只需要包含她所需要的下乙個引用)耦合度就回降低。

而且結構連是在客戶端定義的,部門經理想跳過總監到總經理只需要簡單改下就行。  

**:

//管理者

public abstract class director

public void setdirector(director director)

//管理者處理請求

public abstract void handlerrequest(integer time);

}//部門經理

public class bumenjingli extends director else

}}//總監

public class zongjian extends director else

}}//總經理

public class zongjingli extends director else

}}//測試客戶端

public class test

}

設計模式之職責鏈模式

如果我們現在有乙個需求,乙個人他生了病,這個病要在 醫院才能看,但是這個病人並不清楚,就先去了一級醫院,一級醫院的醫生告訴他你的病要去二級醫院看,二級醫院也告訴他 你的病我這裡看不了,你要去 醫院才能看,最後他去 醫院把病看好了.這個過程直接寫成 class patient this.patient...

設計模式之職責鏈模式

職責鏈模式 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。適用場景 1 有多個的物件可以處理乙個請求,哪個物件處理該請求執行時刻自動確定 2 在不明確指定接收者的情況下,向多個物件中的乙個提交乙個請求 ...

設計模式之職責鏈模式

職責鏈模式 chain of responsibility 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將多個物件連成一條鏈,沿著這條鏈傳遞請求直到有物件處理它為止。可以定義乙個抽象類來表示處理事件的物件,這個類首先有個處理事件的抽象方法,然後提供乙個方法設定下一級處理者...