23 責任鏈模式

2021-10-10 19:03:36 字數 1017 閱讀 9580

責任鏈模式(chain of responsibility pattern)為請求建立了乙個接收者物件的鏈。這種模式給予請求的型別,對請求的傳送者和接收者進行解耦

有多個物件可以處理同乙個請求,具體哪個物件處理該請求由執行時刻自動確定。

舉例:學校經費審批,大於1000的要校長審批,小於1000的要後勤主任審批。傳統做法就是在if else中寫判斷。如果用職責鏈模式來解決。

request:請求任務發起者,這裡就將任務類和業務處理類解耦開。

/**

* 定義乙個任務類

*/public class request

public void setprice(integer price)

public request(integer price)

}/**

* 處理職責的介面

*/ //當前處理者的名字

private string name;

//當前處理者處理業務的方法,交由實現者自己實現

public abstract void handler(request request);

this.name = name;}}

}public string getname()

public void setname(string name)

}/**

* 後勤主任,處理1000以下的申請

*/ public houqing(string name)

public void handler(request request) else

}}/**

* 校長,處理1000以上的申請

*/ public xiaozhang(string name)

public void handler(request request)

}/**

* 測試

*/public class test

}

23種設計模式之責任鏈模式

責任鏈模式 chain of responsibility pattern 為請求建立了乙個接收者物件的鏈。這種模式給予請求的型別,對請求的傳送者和接收者進行解耦。這種型別的設計模式屬於行為型模式。在這種模式中,通常每個接收者都包含對另乙個接收者的引用。如果乙個物件不能處理該請求,那麼它會把相同的請...

23種設計模式 13 責任鏈模式

使多個物件都有機會處理請求,從而避免請求的傳送者和接受者質檢的耦合關係。將這個接收物件連成一條鏈,並沿著這條鏈傳遞請求,直到有乙個物件處理他為止。先來看乙個反面例子 使用大量的if判斷來選擇執行邏輯 public response handlerequest request request else...

23種設計模式之責任鏈模式

定義 使多個物件都有機會處理請求,從而避免了請求的傳送者和接受者之間的耦合關係.將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有物件處理它為止 通俗的講,就是將對請求的處理組成一條鏈,當請求來時,在鏈中依次傳遞,知道找到能夠處理此請求的物件 其通用類圖如下 責任鏈模式的重點是 在 鏈 上,鏈 由...