JAVA設計模式之責任鏈模式

明月及時有發表於2019-03-01
今天給大家帶來的是JAVA的設計模式。
有人會問:什麼是JAVA?
什麼又是設計模式呢?
上海尚學堂java勇敢老師最喜歡的一句話:
JAVA是內功,設計模式是格鬥招式,當只有內功,那麼再好的內功也只是蠻力,只有格鬥招式,那麼也就成了花拳繡腿。
如何把握兩者?
一句話 :具體情況具體分析。
那麼今天給大家帶來的JAVA常用的設計模式之一:職責鏈模式(責任鏈模式)
首先簡單地認識下
我們的是小夥伴 職責鏈。
職責鏈模式[Chain of Responsibility]:
責任鏈模式是一種物件的行為模式。在責任鏈模式裡,很多物件由每一個物件對其下家的引用而連線起來形成一條鏈。
請求在這個鏈上傳遞,直到鏈上的某一個物件決定處理此請求。發出這個請求的客戶端並不知道鏈上的哪一個物件最終處理這個請求,
這使得系統可以在不影響客戶端的情況下動態地重新組織和分配責任。(概念解釋來源於:閻巨集博士的《JAVA與模式》)
很多夥伴們可能對這段該概念很少模糊, 簡單說明下:當某一個業務物件需要完成 任務A B C D 。。。 等多個任務的時候,那麼處理方法是就將任務先交給 A
,待完成後再教於B …. 依次下去。
責任鏈:任務處理物件
JAVA設計模式之責任鏈模式
當如任務分配到到責任鏈上時候,就會出現這樣的優勢局面
  1. 責任的分擔。每個類只需要處理自己該處理的工作(不該處理的傳遞給下一個物件完成),明確各類的責任範圍,符合類的最小封裝原則。
  2. 可以根據需要自由組合工作流程。如工作流程發生變化,可以通過重新分配物件鏈便可適應新的工作流程。
  3. 類與類之間可以以鬆耦合的形式加以組織。
當然也出了不利的局面:在處理多工是以鏈的模式實現物件的傳遞,不同的實現方式會影響處理響應的速度。
我們簡單的任務認識了下
責任鏈的概念,接下來我們一起碼程式碼,感受下程式碼的藝術。
我們基於JAVA語言的實現的簡單的責任鏈。
場景: 設計模擬商場打折,導購員只能 提供 100元以內的優惠 經理提供500元以內的優惠。
目標: 1. 設計一個抽象處理類
AbstractHandlerChain
要求:第一. 持有當前物件的引用
第二.提供當前物件的獲取
第三.共同的業務處理方法
第四.下一個物件傳遞
2.兩個業務處理物件
繼承 AbstractHandlerChain
專案結構 如圖:
JAVA設計模式之責任鏈模式
JAVA設計模式之責任鏈模式
設計兩個業務處理物件 導購員(HandlerChainSales)
經 理() 都繼承處理責任鏈。
JAVA設計模式之責任鏈模式
經理設計
JAVA設計模式之責任鏈模式
物件建立工廠
JAVA設計模式之責任鏈模式
JAVA設計模式之責任鏈模式
結果:
JAVA設計模式之責任鏈模式
簡單的結構示意圖
JAVA設計模式之責任鏈模式
小結:
小夥伴們 今天你們學會了嗎? 今天主要給大家介紹認識下我們的責任鏈模式,實際的執行場景非常的廣泛,如 filter 攔截 ,servlet,Servlet
Engine啟動,tomcat伺服器, springmvc spring 等
框架中都有應用。
大家的想要靈活的運用,需要在專案實戰的中去歷練。後續將為大家介紹這種在設計在 專案中實戰演練,利於註解配和責任鏈
搭建的安全校驗和變種的責任鏈模式的運用。
小夥伴,動手試試吧!

相關文章