設計模式中的車輪戰 責任鏈模式

2021-08-14 13:06:07 字數 1233 閱讀 8791

責任鏈模式在android中的應用莫過於事件分發了,viewgroup對事件分別給子view,從viewtree的頂部至上而下地進行處理,直到事件被消化為止,這種方法在android廣播中也能看到

責任鏈模式的實現分為以下幾個部分

請求者

public

class request

public object getobject()

public

intgetrequestlevel()

}

這裡的object在實際開發當中我們可以換成其他自定義的物件,如android中的message和handler那樣

抽象處理者
public

abstract

class abstracthandler else else }}

public

void

setnexthandler(abstracthandler nexthandler)

protected

abstract

intgethandlerlevel();

protected

abstract

void

handle(request request);

}

處理者

處理者1

public

class

handler1

extends

abstracthandler

@override

protected

intgethandlerlevel()

}

處理者2

public

class

handler2

extends

abstracthandler

@override

protected

void

handle(request request)

}

使用
public

class main

}

這樣處理事件就會沿著責任鏈乙個個下去,直到被處理者處理或沒有處理者為止

設計模式 責任鏈模式

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

設計模式 責任鏈模式

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

設計模式 責任鏈模式

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