設計模式

六大原則:

開閉(擴展而不修改),單一職責(只有一個原因改變類的狀態(tài)),最少知道(減少耦合),替換(父子繼承,子類可替換父類),依賴倒轉(依賴抽象),接口隔離(最小接口)

1.策略模式,主要用于解決有多種數據類型或者角色需要以不同的邏輯處理,為每一種類型(角色)綁定自己匹配的邏輯方法,當有新增的類型和處理邏輯時,只需要簡單的新增,并綁定就可以,不需要對原有的代碼做修改。

2.工廠模式,通過傳入的參數,定制的初始化不同的子類實例。

3.代理模式,代理者和被代理者通過實現相同的接口來保持相同的性質,為代理者設置不同的被代理者,可以靈活的變化接口邏輯。

4.單例(多例)模式。。。

5.抽象工廠模式,相對于簡單工廠模式,由于需要創(chuàng)建的對象有更多的性質,簡單模式無法滿足多種類型的制造,所以將通用的創(chuàng)建方法抽象出來,由子類工廠實現具體的制造邏輯(感覺可以和模板方法模式結合)。

6.門面模式,將復雜的處理過程分裝在一個執(zhí)行類中,提供給外界單一的接口,調用者不必關心細節(jié),擴展(修改)過程也會比較方便,用到的原則:“最少知道”,“開閉”

7.適配器模式,初始的開發(fā)階段一般不會應用到該模式,在后續(xù)的功能擴展(或接入其他的服務、數據),存在參數格式或者接口不匹配的時候,相當于加一個中間層,來適配兩者

8.模板方法模式,一般存在于有繼承關系的場景中,模板方法,即可以通用的接口,在抽象類中定義通用的方法(調用抽象方法的順序),而在子類中各自實現抽象方法的邏輯,基于最少知道原則,可以將抽象方法設為protect

9.建造者模式,相對于簡單工廠模式,建造者適用于更復雜的對象的創(chuàng)建中,將組件的創(chuàng)建和組裝分離分為builder和director,而工廠模式封裝了全部的創(chuàng)建過程

10.橋梁模式

存在一種場景,一種類型中,整體的邏輯不變,但是其中的性質(業(yè)務類型)會變化,所以把兩者分開,將變化的東西抽象出來,按需求組合。否則,每一種性質都整體生成新的類,維護困難。

11.命令模式

主要有命令類,執(zhí)行類,為外界封裝了需要的命令,調用者不需要知道操作的細節(jié),涉及開閉原則,最少知道,單一職責,接口隔離,替換,依賴倒轉

12.裝飾模式

通過組合方式,避免了單用繼承產生的強關聯缺點,分為裝飾類和核心業(yè)務類,裝飾類繼承了核心類的抽象接口,又通過組合方式持有核心實現類(核心業(yè)務類),可以靈活的裝飾不同的裝飾類,搭配成不同的處理邏輯,涉及開閉,依賴倒轉,組合復用,單一職責,里式替換

13.迭代模式

java.lang包的集合類中有廣泛的使用,通過一個迭代類去訪問整個數據結構,最少知道原則

14.組合模式

應用于樹狀結構的初始化中,分為composite和leaf類型,抽象出info等共有的接口和composite(branch)特有的接口,單一職責,接口隔離,里式替換。。。

15.觀察者模式,觀察者和被觀察者,被觀察者持有觀察者對列(listener),當被觀察者執(zhí)行相關的方法時觸發(fā)響應的listener(考慮當觀察者很多時異步化)

16.責任鏈模式,鏈式,串行處理

17.訪問者模式,不同的訪問者,獲取被訪問者不同的內容

18.狀態(tài)模式,狀態(tài)機和狀態(tài)抽象,

19.原型模式,通過原型clone,用于new時需要更大的代價(如io,網絡,磁盤)

20.中介者模式,當多個類之間相互緊密耦合,添加中介者解開類之間的耦合,使類都只依賴于中介者,會導致中介者邏輯復雜,相對更龐大。

21.解釋器模式,java就有解釋運行模式,類似的性質

22.享元模式,減少細粒度的實例(當存在很多區(qū)別很小的實例時),抽象出相同的性質

23.備忘錄模式

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 創(chuàng)建型模式 工廠模式 工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種類型的設...
    liuyang7519閱讀 388評論 0 2
  • 創(chuàng)建型模式 工廠模式 工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種類型的設...
    隔墻送來秋千影閱讀 2,811評論 0 11
  • 文章部分內容轉載自:http://blog.csdn.net/zhangerqing 一、設計模式的分類 總體來說...
    j_cong閱讀 2,140評論 0 20
  • 一、設計模式的分類 總體來說設計模式分為三大類: 創(chuàng)建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者...
    RamboLI閱讀 827評論 0 1
  • 兒子,今天是你16歲的第一天。 和每一個上了高中以后的日子沒什么兩樣,我依舊是走到你的房間,看著你熟睡的樣子,不...
    吉林市權紅閱讀 735評論 0 0

友情鏈接更多精彩內容