責任鏈模式的理解例項

2021-06-01 09:57:31 字數 739 閱讀 1554

這幾天在學習基本的23種設計模式,今天正好學習到,下面將自己的實際小例子**奉上:

下面的**演示的是: 病人去醫院看病所 透漏出來的 責任鏈模式。

總的過程是,乙個病人生病,然後去看病,有很多可以看病的醫生(牙醫,外科等),最後病人看病的結果只有兩種,看或者沒看

上**,請看裡面的注釋

//病public class ill

public string illdesp

}//抽象處理者角色

public abstract class treatillhandler

get }}

//具體處理者角色(牙疼**)

public class toothhandler : treatillhandler

else

}return false;}}

//具體處理者角色(胃疼**)

public class stomachhandler : treatillhandler

else

}return false;}}

}執行的結果:

思考: 1.如果我將ill.illname = "牙痛"; 他將出現如下結果:

也就是說,責任處理者的順序,決定了,這個流程要走幾遍,換個角度來說,要是責任鏈很長,我們是不是應該採取某種策略,盡量使他少遍歷責任處理者呢

2.要是 這個人生了好n種病,那麼他是不是要 將這樣的模式走完n遍,或者是這種模式不適合,兼職的事件,那麼該如何改進呢

java中的責任鏈模式理解

定義 為了避免請求傳送者與多個請求處理者耦合在一起,將所有請求的處理者通過前一物件記住其下乙個物件的引用而連成一條鏈 當有請求發生時,可將請求沿著這條鏈傳遞,直到有物件處理它為止 簡單理解 當乙個請求可能需要多人共同完成,a無法完成時,需要推給b,b處理不了需要推給c這種情況下。a b c形成乙個鏈...

責任鏈模式

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

責任鏈模式

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