設計模式(Design pattern):簡單&粗暴解析

1.前言

  • Java是面向對象的編程,通常都會涉及到 創(chuàng)建對象、對象組成或依賴、對象間交互 的相關操作,一旦在這些操作中沒有合理進行設計,就會引發(fā)項目代碼 耦合度高、靈活性低、無重用、維護困難、擴展成本高、可讀性低。
  • 設計模式 就是通過 不同模式(即不同編寫代碼的規(guī)范) 解決上述的開發(fā)問題。
  • 文章中實例 linhaojian的Github

2.目錄

設計模式目錄.png

_______________________________________________________________________________

3.簡介

設計模式簡介.png

4.七大原則

4.1 單一職責原則

  • 定義:一個類或者模塊,只有一個引起它變化的原因。應該只有一個職責。
  • 解析:如果一個類中承擔過多的職責,就導致職責相互耦合,一個職責變化有個可能就會影響其他職責,而且影響復用。

例:界面更新與業(yè)務邏輯應該分離。

4.2 開閉原則

  • 定義:一個實體(類、函數(shù)、模塊等),對擴展開放,對修改關閉。
  • 解析:在程序擴展時,應該不要修改原有的代碼,通過增加新的實體來擴展功能,這樣是為了使程序的擴展性好,易于維護和升級,而達到這樣的效果,需要使用接口或者抽象類來實現(xiàn)。

4.3 里氏代換原則

  • 定義:子類替換父類。
  • 解析:里氏代換原則是開閉原則的補充。通過繼承抽象接口或者類的方式,讓子類復用父類&擴展。

4.4 依賴倒轉原則

  • 定義:針對接口編程,依賴于抽象而不依賴于具體。
  • 解析:依賴倒轉原則是開閉原則的基礎。在2個實體相互依賴時,應盡可能依賴其接口或者抽象類,不要依賴具體的實現(xiàn)類。

4.5 接口隔離原則

  • 定義:使用多個隔離的接口,比使用單個接口要好。
  • 解析:不要把所有功能抽象為一個接口,應把不同的功能抽象多個不同的接口,降低耦合與依賴。

4.6 迪米特原則

  • 定義:一個實體應當盡量少地與其他實體之間發(fā)生相互作用,使得功能模塊相對獨立。
  • 解析:在一個模塊改變時,應避免影響其他模塊,因此如果模塊間需要交互時,最好通過一個中間者把它們關聯(lián)起來,讓任一個模塊擴展或者修改都不會影響其他模塊。

4.7 合成復用原則

  • 定義:在一個新的對象里面使用一些已有的對象,使之成為新對象的一部分。
  • 解析:新對象在創(chuàng)建時,發(fā)現(xiàn)某些已有的對象應該擁有新對象部分功能,因在新對象中可以引用這些對象。簡單地說,就是要盡量使用合成/聚合,盡量不要使用繼承。

5.三大類型

5.1 創(chuàng)建型

  • 定義:隱式的創(chuàng)建對象,隱藏創(chuàng)建的邏輯(new 對象),讓使用者獲取對象時不需關注創(chuàng)建過程,使調用者與創(chuàng)建對象過程解耦,一旦創(chuàng)建過程需要擴展或者修改,都不會影響調用者。
  • 包括:
    1.單例模式
    2.簡單工廠模式
    3.工廠模式
    4.抽象工廠模式
    5.建造者模式

5.2 結構型

  • 定義 :通過類或者對象組合,使結構更強大。
    類結構 :關心類的組合,使用繼承或者實現(xiàn)的方式,由多個類組合成可擴展、可復用、可代替的系統(tǒng)。
    對象結構 :關心類與對象的組合,使用類與對象聚合的方式,使系統(tǒng)實現(xiàn)合成復用的效果。
  • 包括:
    1.代理模式
    2.裝飾者模式
    3.外觀模式
    4.享元模式

5.3 行為型

  • 定義 :對在不同對象間劃分責任的抽象化與不同對象間相互作用。
    類行為 :使用繼承的形式分配子類的職責。
    對象行為 :使用聚合的形式使不同對象相互作用。
  • 包括:
    1.觀察者模式
    2.策略模式
    3.模板模式
    4.責任鏈模式
    5.迭代器模式

6.總結

  • 到此,簡單&粗暴解析了設計模式 ,后續(xù)我會把上述 三大類型模式 下的各子模式進行解析分享,
    請繼續(xù)關注linhaojian_簡書
  • 如果喜歡我的分享,可以點擊 關注 或者 ,你們支持是我分享的最大動力 。
  • linhaojian的Github

歡迎關注linhaojian_CSDN博客或者linhaojian_簡書!

不定期分享關于安卓開發(fā)的干貨。

設計模式(Design pattern):簡單&粗暴解析
單例模式(Singleton Pattern):簡單&粗暴解析
簡單工廠模式(Easy Factory Pattern):簡單&粗暴解析
工廠模式(Factory Pattern):簡單&粗暴解析):簡單&粗暴解析
抽象工廠模式(Abstract Factory Pattern):簡單&粗暴解析
建造者模式(Builder Pattern):簡單&粗暴解析
代理模式(Proxy Pattern):簡單&粗暴解析
裝飾器模式(Decorator Pattern):簡單&粗暴解析
外觀模式(Facade Pattern):簡單&粗暴解析
享元模式(Flyweight Pattern):簡單&粗暴解析
觀察者模式(Observe Pattern):簡單&粗暴解析
策略模式(Strategy attern):簡單&粗暴解析


寫技術文章初心

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

相關閱讀更多精彩內容

  • 設計模式概述 在學習面向對象七大設計原則時需要注意以下幾點:a) 高內聚、低耦合和單一職能的“沖突”實際上,這兩者...
    彥幀閱讀 3,890評論 0 14
  • 鏈接:https://github.com/WiKi123/DesignPattern作者: WiKi123(gi...
    樹懶啊樹懶閱讀 3,846評論 0 2
  • 你終究是放慢腳步了。 風起,黃沙漫天。你踽踽而行,大漠的風沙鋪天蓋地,遮住了雙眼,迷失了方向…… 曾經,像李白一樣...
    王子晗2003閱讀 336評論 0 0
  • 天雖炎熱,沒有空調 也要堅強的睡著 ▼1 煙頭今天上班差點崩潰了,耷了著眼皮,無精打采。當然這也得怪我自己,誰叫煙...
    煙頭不上火閱讀 448評論 0 0
  • 愛怎么會是相互折磨?
    一個人走會幸福_1980閱讀 139評論 0 0

友情鏈接更多精彩內容