設計模式

1.什麼是設計模式?

模式:在某些場景下,針對某類問題的某種通用解決方案
場景:項目環境
問題:約束條件,項目目標等
解決方案:通用、可以複用的設計,解決約束,達到目標

2.設計模式的分類

創建型模式:對象實例化的模式,創建型模式解耦了對象的實例化過程
結構型模式:把類或對象結合在一起形成更大的結構
行爲型模式:類和對象如何交互,及劃分責任和算法

3.對象設計的6大原則

  • 組合複用原則
    多用組合,少用繼承
    找到變化部分,抽象,封裝變化
    區分“Has-A”與“Is-A”
  • 依賴倒置原則
    依賴:成員變量、方法參數、返回值
    要依賴於抽象,不要依賴於具體
    高層模塊不應該依賴低層模塊,二者都應該依賴其抽象
    抽象不應該依賴具體,具體應該依賴抽象
    針對接口編程,不要針對實現編程
  • 開閉原則
    對擴展開放,對修改關閉
    通過擴展已有軟件系統,可以提供新的功能
    修改的關閉,保證穩定性和延續性
  • 迪米特法則
    一個對象應該與其他對象保持最少的瞭解。只與直接朋友交談。
    成員變量、方法參數、方法返回值中需要的類爲直接朋友
    類與類之間的關係越密切瞭解越多,耦合度越大
    儘量降低類與類之間的耦合
    外觀模式、中介者模式
  • 里氏替換原則
    所有引用基類的地方必須能透明地使用其子類對象
    子類在擴展父類功能時不能破壞父類原有的功能
    使用繼承時,遵循里氏替換原則:
    子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法。
    當子類重載父類方法時,方法的形參要比父類方法的參數更寬鬆
    當子類實現父類的抽象方法時,方法的返回值要比父類更嚴格
  • 單一職責原則
    類應該只有一個導致類變更的理由
    即一個類只負責一項職責

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章