
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):簡單&粗暴解析
寫技術文章初心
- 技術知識積累
- 技術知識鞏固
- 技術知識分享
- 技術知識交流