理解設計模式中7種原則

1.單一職責原則

1.降低類的複雜度,一個類只做一件事(這樣類就用的多)
2.如果邏輯簡單,方法不多,類可以不用遵守單一,但是方法上一點要遵守單一職責

2.接口隔離原則

A類通過接口去依賴B類,大的接口拆分小的接口,去依賴小的接口
1.多個接口,多個方法,普通類實現多個接口,以及重寫方法
2.普通類裏,不同名的方法,參數裏面傳不同的接口名
3.A a = new A()
a.方法(new B())調用直接傳接口的實現類

3.依賴倒轉原則(找一箇中間人)

1.高層模塊不能依賴底層模塊,都應該要依賴抽象
2.中心思想是面向接口編程(使用接口抽象是規範)
案例:
一個QQ類接收電子郵箱,接收方法裏面傳電子郵箱對象
上面比較容易想到如果我們獲取的對象是徵信,短信等等,則新增類,同時Perons也要增加相應的接收方法
優化思路:
引入一個抽象的接口 Receiver,表示接收者,這樣 Person類與接口工 Receiver發生依賴因爲Emai1, Weixin等等屬於接收的範圍,他們各自實現 Treceiver接口就ok,這樣我們就符號依賴倒轉原則

4.里氏替換原則

繼承弊端 如果父類修改,子類跟着修改,增強了耦合性,特別是多態頻繁
在使用繼承,遵守里氏替換原則,子類中儘量不要重寫父類的方法
解決是聚合,組合,依賴來解決問題

5.開閉原則,前面的都是爲了這個

類,模塊應該對提供方擴展開發,對修改關閉(使用方),用抽象構造框架,實現擴展細節
增加代碼,不是修改

6.迪米特法則

最少知道原則,核心是降低類之間的耦合.
直接的朋友,只要二個對象之間是朋友關係,例如依賴,關聯,組合,聚合.
方法返回值,參數,成員變量中的類是直接朋友.
方法裏的局部變量(對象)不是朋友,違法了迪米特法則
理解:不要把自己的對象寫在別人的方法裏面,應該把自己對象寫在自己類中的方法封裝
別人的方法通過參數調用此方法

7.合成複用

原則儘量使用合成/聚合,不要用繼承

1.聚合是成員變量,整體與部分可以分開

2.關聯是成員變量一對一,一對多.類與類之間的聯繫

3.合成是類中的成員對象,整體和部分不可分離,同生共死

4.組合和合成相同,唯一的區別是項目中進行級聯刪除,刪除A,B也一起刪除,那麼AB就是組合

三種類型
1.創建型模式:解決創建對象
2.結構性模式:解決類之間的問題
3.行爲性模式:解決方法的問題

說出來有點好笑,無意識的在遵守上面這些規則,設計模式基於上面7種實現,學會了有好處

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