23種設計模式總結(三)

前面2節,咱們主要介紹了構建型和結構型的設計模式,今天咱們重點講一下行爲型。設計模式

策略模式設計

要點:一個策略的接口,若干個實現類,針對不一樣的狀況,選擇不一樣的策略實現來解決問題。netty

典型場景:在以前的社保項目當中,針對不一樣的參保人類型,它的各類險種的計算方式會有一些不一樣,多采用此種結構server

實現難度:通常對象

普遍程度:比較普遍接口

 

模板方法模式ip

要點:其實,一個稱之爲模板的abstract類,當中的一部分計算過程是abstract,若干個子類,針對不一樣的狀況,對abstract進行不一樣的實現。it

典型場景:和策略模式差很少,區別在於,對於計算過程徹底不一樣的場景,採用策略模式,一小部分不一樣的場景,採用模板方法模式。pip

實現難度:通常模板

普遍程度:比較普遍

 

咱們其實能夠把策略模式理解爲一種特殊的模板方法模式,空模板。

 

觀察者模式

要點:一個Observer的interface,多個Observer實現類,主題subject interface及實現類,可以動態添加刪除observer,某些操做發生的時候,通知observer。

典型場景:系統發生某些時間的狀況下,須要採用郵件、短信等形式通知相關干係人。

實現難度:通常

普遍程度:比較普遍

 

迭代子模式

略過,參考jdk當中集合類的iterator的使用和實現便可。

 

責任鏈模式

要點: 有多個對象,每一個對象持有對下一個對象的引用,這樣就會造成一條鏈,請求在這條鏈上傳遞,直到某一對象決定處理該請求。

典型場景:netty的handler pipeline

實現難度:通常

普遍程度:比較普遍

 

命令模式

要點:一個命令的發起者(invoker),一個命令的接受者(receiver),一個是命令自己(command)。

實現難度:比較難以理解

普遍程度:反正我不多用

相關文章
相關標籤/搜索