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

2021-10-01 09:18:31 字數 1624 閱讀 5162

責任鏈模式(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...