設計模式--總綱

前輩的輪子-圖說設計模式
前輩的輪子-設計模式
前輩的輪子-Android源碼與設計模式

android

面向對象的六大原則

單一職責原則(SRP):一個類只負責一個職責,不要存在多個致使類變動的緣由
開閉原則(OCP): 對擴展開放,對修改封閉
里氏替換原則(LSP):子類必須可以替換他們的基類
依賴倒置原則(DIP):提升靈活性,高層不依賴低層,兩個都應該依賴於抽象;抽象不依賴與細節,細節依賴抽象
迪米特原則(LOD):類間解耦,類之間聯繫儘量少
接口隔離原則(ISP):客戶端不該該依賴它不須要的接口,多用組合,少用繼承

git

設計模式主要分爲三類(共23種):

  1. 建立型設計模式(5種)
    單例模式、工方法模式、抽象工廠模式、建造者模式、原型模式
      建立型模式(Creational Pattern): 對類的實例化過程進行了抽象,可以將軟件模塊中對象的建立和對象的使用分離。爲了使軟件的結構更加清晰,外界對於這些對象只須要知道它們共同的接口,而不清楚其具體的實現細節,使整個系統的設計更加符合單一職責原則。
    建立型模式隱藏了類的實例的建立細節,經過隱藏對象如何被建立和組合在一塊兒達到使整個系統獨立的目的。
    程序員

  2. 結構型設計模式(7種)
    適配器模式、裝飾模式、代理模式、外觀模式、橋接模式、組合模式、享元模式
      結構型模式(Structural Pattern)描述如何將類或者對象結合在一塊兒造成更大的結構,就像搭積木,能夠經過簡單積木的組合造成複雜的、功能更爲強大的結構。
    結構型模式能夠分爲類結構型模式和對象結構型模式:
    github

  • 類結構型模式: 關心類的組合,由多個類能夠組合成一個更大的系統,在類結構型模式中通常只存在繼承關係和實現關係。
  • 對象結構型模式: 關心類與對象的組合,經過關聯關係使得在一個類中定義另外一個類的實例對象,而後經過該對象調用其方法。

根據「合成複用原則」,系統中儘可能使用關聯關係來替代繼承關係,所以大部分結構型模式都是對象結構型模式。
算法

  1. 行爲型設計模式(11種)
    策略模式、模板方法模式、觀察者模式、迭代器模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式
      行爲型模式(Behavioral Pattern)是對在不一樣的對象之間劃分責任和算法的抽象化。
      行爲型模式不單單關注類和對象的結構,並且重點關注它們之間的相互做用。 經過行爲型模式,能夠更加清晰地劃分類與對象的職責,並研究系統在運行時實例對象 之間的交互。在系統運行時,對象並非孤立的,它們能夠經過相互通訊與協做完成某些複雜功能,一個對象在運行時也將影響到其餘對象的運行。

行爲型模式分爲類行爲型模式對象行爲型模式兩種:設計模式

  • 類行爲型模式:類的行爲型模式使用繼承關係在幾個類之間分配行爲,類行爲型模式主要經過多態等方式來分配父類與子類的職責。
  • 對象行爲型模式:對象的行爲型模式則使用對象的聚合關聯關係來分配行爲,對象行爲型模式主要是經過對象關聯等方式來分配兩個或多個類的職責。

根據「合成複用原則」,系統中要儘可能使用關聯關係來取代繼承關係,所以大部分行爲型設計模式都屬於對象行爲型設計模式。

.net

©愛穿襯衫的程序員設計

相關文章
相關標籤/搜索