設計模式的一些概念----設計模式學習筆記

一.設計模式的六大原則

    1.單一職責原則

  • 定義:不要存在多於一個致使類變動的緣由。通俗的說,即一個類只負責一項職責,這樣對某個類類的改變只會是一種緣由致使的。編程

    2.里氏替換原則

  • 定義一: 若是堆每個類型爲T1的對象o1,都有類型爲T2的對象o2,使得以T1定義的全部程序P在全部的對象o1都代換成o2是,程序P的行爲沒有發生變換,那麼類型T2是類型T1的子類型。設計模式

  • 定義二:全部引用基類的地方必須能透明地使用其子類對象函數

  • 定義三:子類能夠擴展父類的功能,但不能改變父類原有的功能spa

  • 通俗而言:父類中凡是已經實現好的方法(除了抽象方法基本都已實現好),其實是在設定一系列的規範和契約,雖然它不強制要求全部的子類必須遵循這些契約,可是若是子類對這些方法任意重寫,就會對整個繼承體系形成破壞。因此應當儘可能避免。設計

建議:當子類方法重載父類方法時,方法的前置條件(即方法的形參)要比父類方法的輸入參數更寬鬆。(待研究)代理

    3.依賴倒置原則

  • 定義:高層模塊不該一類底層模塊,兩者都應依賴其抽象;抽象不該該依賴細節;細節應該依賴抽象。對象

  • 通俗來說:說的就是要面向接口編程。繼承

  • 建議一:低層模塊儘可能都要有抽象類或接口,或者二者都有接口

  • 建議二:變量的聲明類型儘可能是抽象類或者接口。好比Map<String,Object> map=new HashMap<String,Object>();原型

  • 建議三:使用繼承時要遵循里氏替換原則。

    4.接口隔離原則

  •     定義:客戶端不該該依賴它不須要的接口;一個類對另外一個類的依賴應該創建在最小的接口上。

  • 建議一:接口儘可能小(由於接口太臃腫的話可能致使實現類須要實現太多沒有的方法),但要有限度。

  • 建議二:爲依賴接口的類定製服務,只暴露給調用的類它須要的方法,它不須要的方法要儘可能隱藏起來。

  • 建議三:提升內聚,減少對外交互。使接口用最少的方法區完成最多的事情。

    5.迪米特法則

  • 定義:一個對象應該對其餘對象保持最少的瞭解

  • 最少知道原則,要把不需讓其餘類知道的方法隱藏起來

    6.開放封閉原則

  • 定義:一個軟件實體、模塊、函數應該對擴展開放,對修改關閉。

二.六大原則總結

  • 單一職責告訴咱們每一個類負責的東西要與其餘類耦合度低

  • 迪米特法則告訴咱們要下降耦合,隱藏不需被別人知道的方法

  • 里氏替換原則告訴咱們不要破壞繼承體系

  •  

    依賴倒置原則告訴咱們要面向接口編程

  • 接口隔離原則告訴咱們在設計接口的時候要精簡單一

  • 開閉原則是總綱,告訴咱們要對擴展開放,對修改關閉

三.設計模式的種類

  • 建立型模式(5種)
    • 單例模式
    • 工場方法模式
    • 抽象工場模式
    • 建造者模式
    • 原型模式
  • 結構型模式(11種)
    • 模版方法模式
    • 中介者模式
    • 觀察者模式
    • 訪問者模式
    • 命令模式
    • 職責鏈模式
    • 策略模式
    • 迭代器模式
    • 解釋器模式
    • 備忘錄模式
    • 狀態模式
  • 爲型模式(7種)
    • 適配器模式
    • 橋接模式
    • 組合模式
    • 裝飾模式
    • 外觀模式
    • 享元模式
    • 代理模式
相關文章
相關標籤/搜索