什麼是鏈
職責鏈模式
角色職責鏈靈活在哪
純的與不純的責任鏈模式
乙個純的責任鏈模式要求乙個具體的處理者物件只能在兩個行為中選擇乙個:一是承擔責任,而是把責任推給下家。不允許出現某乙個具體處理者物件在承擔了一部分責任後又 把責任向下傳的情況。
在乙個純的責任鏈模式裡面,乙個請求必須被某乙個處理者物件所接收;在乙個不純的責任鏈模式裡面,乙個請求可以最終不被任何接收端物件所接收。
純的責任鏈模式的實際例子很難找到,一般看到的例子均是不純的責任鏈模式的實現。
public abstract class handler
/*** 賦值方法,設定後繼的責任物件
*/public void setsuccessor(handler successor)
}
2.具體處理者角色
public class concretehandler extends handler else
}}
3.客戶端類
public class client
}
設計模式之職責鏈模式
如果我們現在有乙個需求,乙個人他生了病,這個病要在 醫院才能看,但是這個病人並不清楚,就先去了一級醫院,一級醫院的醫生告訴他你的病要去二級醫院看,二級醫院也告訴他 你的病我這裡看不了,你要去 醫院才能看,最後他去 醫院把病看好了.這個過程直接寫成 class patient this.patient...
設計模式之職責鏈模式
職責鏈模式 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。適用場景 1 有多個的物件可以處理乙個請求,哪個物件處理該請求執行時刻自動確定 2 在不明確指定接收者的情況下,向多個物件中的乙個提交乙個請求 ...
設計模式之職責鏈模式
職責鏈模式 chain of responsibility 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將多個物件連成一條鏈,沿著這條鏈傳遞請求直到有物件處理它為止。可以定義乙個抽象類來表示處理事件的物件,這個類首先有個處理事件的抽象方法,然後提供乙個方法設定下一級處理者...