設計模式 責任鏈模式

2021-09-30 17:22:10 字數 1706 閱讀 6775

責任鏈模式的運用可以使客戶端透明的發起服務呼叫不需要關注具體是哪個環節做發起的呼叫做具體處理,同樣,也方便handler的擴充套件。

責任鏈模式結合模板方法模式例項:

抽象handler:

public abstract class

abstracthandler

public

void

handlerrequest

(ibuyer buyer)

elseif(

this

.nexthandler !=

null

)else

}/**

* 訊息處理

*/public abstract void

handlerresponse

(ibuyer buyer)

;public

void

setnexthandler

(abstracthandler nexthandler)

}

具體handler1

public

class

discounthandler1

extends

abstracthandler

@override

public

void

handlerresponse

(ibuyer buyer)

}

具體handler2

public

class

discounthandler2

extends

abstracthandler

public

discounthandler2()

}

具體handler3

public

class

discounthandler3

extends

abstracthandler

@override

public

void

handlerresponse

(ibuyer buyer)

}

buy介面

public

inte***ce

ibuyer

具體buy

public

class

concretebuyer

implements

ibuyer

public

concretebuyer

(integer type, string message)

} @override

public

void

buy(

)}

客戶端:

public

class

client

}}

執行結果如圖:

設計模式 責任鏈模式

定義 避免請求傳送者與接收者耦合在一起,讓多個物件都有可能接收請求,將這些請求連線成一條鏈,並且沿著這條鏈傳遞請求,直到有物件處理它為止。例項 請假加薪審批 using system using system.collections.generic using system.text namespa...

設計模式 責任鏈模式

責任鏈可以使得系統在不影響客戶端的前提下動態的安排責任鏈和分配責任。責任鏈模式中包含的角色有抽象處理者,具體處理者以及請求的傳送者。責任鏈可以是一條直線,乙個環鏈甚至乙個樹結構。它使得每乙個具體的訊息處理者都有可能處理訊息。抽象的請求處理者 author wly public abstract cl...

設計模式 責任鏈模式

責任鏈模式 chain ofresponsibility pattern 基本概念 責任鏈,顧名思義,是指乙個負責相應請求的行為鏈。首先要理解的是乙個鏈,然後通過這個鏈來管理個行為。什麼時候會用到責任鏈 對於乙個請求,沒有特別指明由誰處理或沒有指明如何處理。此時可以使用責任鏈的形式,用過將各種處理行...