責任鏈模式

2021-09-19 17:36:06 字數 848 閱讀 3093

責任鏈模式 簡單就是說 如果要根據某個條件處理多個不同的事情。如果正常讓你來寫**。if else 或者各種case 語句就能搞定了。但是責任鏈模式覺得這樣不好。耦合大。為了解耦。把各種真正else裡頭實際的處理者或者叫物件抽象出來。形成乙個所謂的介面或者抽象類。這個抽象類有乙個物件。這個處理物件的恰好是這個類同型別。這個介面還有乙個抽象處理方法。這個方法也很詭異。乙個簡單的if else 。else裡頭的邏輯就是用剛才的物件再呼叫這個方法。是不是有點遞迴的意思了。這個其實不能叫遞迴。因為畢竟是呼叫的物件的方法。不是直接呼叫方法本身。下馬結合**再看。

看了**。確實各個類之間確實沒啥耦合onehander不知道twohander。但是疑問來了。那實際呼叫者呢。你總要setnexthander吧。看**。

看了**。疑惑就解開了。就是處理鏈條完全在呼叫者這裡。自己設定鏈條的走勢。你可以設定a-b 也可以設定b-a 。當然如果有c。可以abc 也可以acb。反正可以自己設定。是不是感覺有點寫netty hander的意思。沒錯。就是這個路數。記住就是鏈條的意思。當然還有servlet的filter。都是乙個事件或者乙個請求過來。要走一圈處理的時候。記住用責任鏈模式

責任鏈模式

責任鏈模式 chain of responsibility 的目標是使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞請求,直到有乙個物件處理它為止。舉個例子。你到銀行去辦理業務,只是簡單的存個錢,也許atm就解決你的問題。如果你是為了交費...

責任鏈模式

有3個request與3個handler,每個request由相應的handler來處理,當乙個handler與request不匹配時則傳遞給下乙個handler來處理 inte ce request class request1 implements request class request2 ...

責任鏈模式

了解了一下責任鏈模式,簡單的說下自己的理解吧 責任鏈就是說待處理的資料在request的時候,先經過filter1的處理,再經過filter2的處理,然後response時,先經過filter2的處理,在經過filter1的處理。實現思路是filterchain包括filter1和filter2,同...