1. 程式人生 > >java之職責鏈模式

java之職責鏈模式

對象 比較 是的 handles 一個 行處理 職責鏈模式 ron src

話說,老王剛換了家公司,畢竟工作好幾年了,經過一番面試,進了一家大公司,這個公司吧,在南京還是相當比較大的,公司的班車有那麽十幾輛來著,剛到公司人生地不熟的,這第一天上班,可是有點不自在,可是沒有之前待的老公司舒服,那真是予取予求啊。現在倒好好像又要從新員工開始做起,崩潰之心,怎是一兩句話能說的完的。那就先忍著吧。畢竟工資那麽高,不要跟錢過不去嘛。時間一分一秒的過去,哇哢哢,終於到了下班的時間,啪的電腦關掉,背上背包回家去,來之前就知道,公司的班車到各個地方的都有,工作也是既方便的,到了去做班車的地方,車一輛一輛的緊挨著。。。。這時候,老王心一急,我擦,哪個是我要做的班車,靠都長一樣,看看表,時間緊迫啊。那就從前到後一個一個問嘍,第一輛車,你好師傅,這個車到不到XXX,不是你去問後一輛車吧,第二輛車,你好師傅,這個車到不到XXX,不是你去問後一輛車吧,第二輛車。。。。。。終於,這樣一個一個的問,緊趕慢趕,終於找到了回家的車。老王,又是一臉的不開心。

言歸正傳,老王整個找車的過程就是java的一個設計模式的雛形,那就今天要講的職責鏈模式(chain of responsibility),老王並不知道,自己要找車在哪,只是按著車停靠的路線,一個一個的挨著找,總有一個車是的,或者已經開走了,就好比,一個請求過來,只是經過這個一個串的經過總有一個,可以處理掉,而你只要問第一個就可以。

職責鏈模式:Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.Chain the receiving objects and pass the request along the chain until an object handles it (使多個對象都有機會處理請求,從而避免了請求的發送者和接受者之間的耦合關系。將這些對象連成一條鏈,並沿著這條鏈傳遞該請求,直到有對象處理它為止) ,

直白的說就是,原來呢一個請求要發生多次,到不同的對象,進行處理,現在就只要發生給第一個對象就可以了技術分享

代碼設計邏輯圖

java之職責鏈模式