責任鏈模式(chain of responsibility pattern)為請求建立了乙個接收者物件的鏈。這種模式給予請求的型別,對請求的傳送者和接收者進行解耦。這種型別的設計模式屬於行為型模式。
在這種模式中,通常每個接收者都包含對另乙個接收者的引用。如果乙個物件不能處理該請求,那麼它會把相同的請求傳給下乙個接收者,依此類推。
1、有多個物件可以處理同乙個請求,具體哪個物件處理該請求由執行時刻自動確定。
2、在不明確指定接收者的情況下,向多個物件中的乙個提交乙個請求。
3、可動態指定一組物件處理請求。
我們建立抽象類 abstractlogger,帶有詳細的日誌記錄級別。然後我們建立三種型別的記錄器,都擴充套件了 abstractlogger。每個記錄器訊息的級別是否屬於自己的級別,如果是則相應地列印出來,否則將不列印並把訊息傳給下乙個記錄器。
package test1;
public
abstract
class
abstractlogger
public
void
logmessage
(int level,string message)
if(nextlogger != null)
}abstract
protected
void
write
(string message)
;}
package test1;
public
class
consolelogger
extends
abstractlogger
@override
protected
void
write
(string message)
}
package test1;
public
class
errorlogger
extends
abstractlogger
@override
protected
void
write
(string message)
}
package test1;
public
class
filelogger
extends
abstractlogger
@override
protected
void
write
(string message)
}
package test1;
public
class
chainpatterndemo
public
static
void
main
(string[
] args)
}
23種設計模式之責任鏈模式
定義 使多個物件都有機會處理請求,從而避免了請求的傳送者和接受者之間的耦合關係.將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有物件處理它為止 通俗的講,就是將對請求的處理組成一條鏈,當請求來時,在鏈中依次傳遞,知道找到能夠處理此請求的物件 其通用類圖如下 責任鏈模式的重點是 在 鏈 上,鏈 由...
23種設計模式 13 責任鏈模式
使多個物件都有機會處理請求,從而避免請求的傳送者和接受者質檢的耦合關係。將這個接收物件連成一條鏈,並沿著這條鏈傳遞請求,直到有乙個物件處理他為止。先來看乙個反面例子 使用大量的if判斷來選擇執行邏輯 public response handlerequest request request else...
java23種設計模式 責任鏈模式
屬於行為型模式的一種,乙個請求由多個物件來處理,這些物件形成一條鏈,請求沿著該鏈傳遞,直到該鏈上的某個物件處理它為止。desc 抽象處理者 created by tiantian on 2018 8 19 public inte ce ihandler package design.patten.c...