架构师进阶之独孤九剑:设计模式详解
我們繼續架構師進階之獨孤九劍進階,目前我們仍然在第一階段:程序設計和開發環節。
“
設計模式不僅僅只是一種規范,更多的是一種設計思路和經驗總結,目的只有一個:提高你高質量編碼的能力。以下主要分為三個環節:為什么要用設計模式、設計模式的分類,以及最后推薦大家三本設計模式相關的書籍,希望對你有所幫助。
為什么要使用設計模式
1、設計模式是前人根據經驗總結出來的,使用設計模式,就相當于是站在了前人的肩膀上。
2、設計模式使程序易讀。熟悉設計模式的人應該能夠很容易讀懂運用設計模式編寫的程序。
3、設計模式能使編寫的程序具有良好的可擴展性,滿足系統設計的開閉原則。比如策略模式,就是將不同的算法封裝在子類中,在需要添加新的算法時,只需添加新的子類,實現規定的接口,即可在不改變現有系統源碼的情況下加入新的系統行為。
4、設計模式能降低系統中類與類之間的耦合度。比如工廠模式,使依賴類只需知道被依賴類所實現的接口或繼承的抽象類,使依賴類與被依賴類之間的耦合度降低。
5、設計模式能提高代碼的重用度。比如適配器模式,就能將系統中已經存在的符合新需求的功能代碼兼容新的需求提出的接口 。
6、設計模式能為常見的一些問題提供現成的解決方案。
7、設計模式增加了重用代碼的方式。比如裝飾器模式,在不使用繼承的前提下重用系統中已存在的代碼。
設計模式分類和作用
1.總體來說設計模式分為三大類:
2.創建型模式的作用:
創建型模式,顧名思義就是創建對象的模式,對對象實例化過程進行了抽象。它們幫助一個系統獨立于如何創建、組合和表示它的那些對象。
3.創建型模式,共五種:
-
工廠方法模式
-
抽象工廠模式
-
單例模式
-
建造者模式
-
原型模式
1)工廠方法模式:定義一個用于創建對象的接口,讓子類決定實例化哪一個類,也就是將創建工作推遲到子類來完成。
2)抽象工廠模式:提供一個創建一系列相關或者相互依賴對象的接口,而無需指定它們(指的是這些相關或者相互依賴的對象)的具體的類。
3)生成器模式:將一個復雜對象的構建和它的表示相分離,使得同樣的構建過程可以創建出不同的表示。
4)原型模式:用原型實例指定創建對象的種類,并且通過拷貝這些原型創建新的對象。
5)單例模式:保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。換句話來說就是,單例模式通過將單例類的構造器訪問修飾符設置為private,禁止客戶直接通過new的方式來實例化單例類;與此同時,單例類提供一個靜態訪問點來獲取到通過內部創建出的唯一單例類對象。
4.一般創建型設計模式面試必問:
建議以下四類都熟練掌握
-
工廠方法模式
-
抽象工廠模式
-
單例模式
-
建造者模式
5.結構型模式,共七種:
-
適配器模式
-
裝飾器模式
-
代理模式
-
外觀模式
-
橋接模式
-
組合模式
-
享元模式
6.結構型模式的作用:
結構型模式主要用于描述如何組合類和對象以獲得更大的結構。其中,結構型類模式采用繼承機制來組合接口和實現,而結構型對象模式則采用組合/聚合方式來組合對象以實現新功能,因為它可以在運行時刻改變對象組合關系,所以對象組合方式具有更大的靈活性,這種機制是無法通過靜態類組合來實現的。
7.結構型模式簡介:
1.適配器模式:將一個類的接口轉換成客戶希望的另外一種接口,這樣就能實現已有接口的復用。適配器主要有類適配器和對象適配器兩種實現方式,通常情況下,推薦優先使用對象適配器方式。
2.橋接模式:將抽象部分與實現部分分離,使它們都可以獨立地變化。它主要用于應對多維度變化點問題,通過對象組合的方式,可以極大地減少子類的數目,同時還能讓不同維度獨立擴展變化。
3.組合模式:將對象組合成樹形結構以表示“整合-部分”的層次結構,從而使得用戶對單個對象和組合對象的使用具有一致性,也就是客戶端能夠透明地無區別地操作兩者。
4.裝飾模式:動態地給一個對象添加一些額外的職責,就增加功能來說,裝飾模式相比生成子類更為靈活。
5.外觀模式:為子系統中的一組接口提供一個一致的接口,外觀模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。這樣原來需要客戶直接與復雜的子系統打交道、交互,現在這一過程將完全將交由外觀對象來完成,極大地方便了客戶端的調用。
6.享元模式:運用共享技術有效地支持大量細粒度的對象。享元模式關鍵是將對象的內部狀態和外部狀態分離,盡可能地對“穩定”的內部狀態進行共享,而將會隨運用場景而改變的狀態通過外部狀態傳入。
7.代理模式:為其他對象提供一種代理以控制對這個對象的訪問。主要是在客戶端和目標對象間增加一層間接層,通過這個間接層來完成對目標對象的種種控制操作,所以也就形成了不同功能類型的代理呢,比如遠程代理、保護代理和虛代理等等。
8.行為型模式,共十一種:
-
策略模式
-
模板方法模式
-
觀察者模式
-
迭代子模式
-
責任鏈模式
-
命令模式
-
備忘錄模式
-
狀態模式
-
訪問者模式
-
中介者模式
-
解釋器模式
9.行為模式的作用:
行為型模式設計到算法和對象間的職責分配,不僅描述對象或類的模式,還描述它們之間的通信方式,刻劃了運行時難以跟蹤的復雜的控制流,它們將你的注意力從控制流轉移到對象間的關系上來。
設計模式書籍推薦
1.第一本:Head First設計模適合式
適合:設計模式入門
2.第二本:設計模式
適合:有一定的設計模式基礎之后再看
3.第三本:敏捷軟件開發
適合:對設計模式以及敏捷的了解,名字叫敏捷軟件開發,實則主要講解了大量設計模式。
推薦以上的三本設計模式相關的書籍,順序可以從上往下看,出入門到深入,也許效果會更好。
總結
以上是生活随笔為你收集整理的架构师进阶之独孤九剑:设计模式详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式队列编程优化篇
- 下一篇: 设计模式实践及总结