設計模式之23種常用模式

在常用的23種設計模式中,根據設計模式的功能,我們又可以把這23個設計模式分爲三大類:創建類模式,結構類模式,行爲類模式;

創建類模式

  • 工廠方法模式,定義一個用於創建對象的接口,讓子類決定實例化哪一類,使一個類的實例化 延遲到其子類;
  • 建造者模式,將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示;
  • 抽象工廠模式,爲創建一組相關或相互依賴的對象提供一個接口,而且無須指定它們的具體類。
  • 單例模式,確保某一個類只有一個實例,而且自行實例化並向整個系統提供這個實例;
  • 原型模式,通過對象複製來實現的模式就叫做原型模式,用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。

結構類模式

  • 適配器模式,將一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作;
  • 橋樑模式,將抽象與實現解耦,使得兩者可以獨立地變化;
  • 組合模式,將對象組合成樹形結構以表示“部分-整體”的場次結構,使得用戶對單個對象和組合對象的使用具有一致性。
  • 裝飾模式,動態地給一個對象添加一些額外的職責。就增加功能來說 ,裝飾模式相比生成子類更爲靈活;
  • 門面模式,要求一個子系統的外部與其內部通信必須通過一個統一的對象進行。門面模式提供一個高層次的接口,使得子系統更易於使用。
  • 享元模式,是池技術的重要實現方式,使得共享對象可有效地支持大量的細粒度的對象。
  • 代理模式,爲其他對象提供一種代理以控制對這個對象的訪問。

行爲類模式

  • 責任鏈模式,使多個對象都有機會處理請求,從而避免了請求的發送者和接受者之間的耦合關係,將這些對象連成一條鏈,並沿着這條鏈傳遞該請求,直到有對象處理它爲止;
  • 命令模式,這是一個高內聚的模式,將一個請求封裝成一個對象,從而讓你使用不同的請求把客戶端參數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能;
  • 解釋器模式,是一種按照規定語法進行解析的方案;定義爲:給定一門語言,定義它的文法的一種表示,並定義一個解釋器,該解釋器使用該表示業解釋語言中的句子。
  • 迭代器模式,,它提供一種方法訪問一個容器對象中各個對象,而又不需暴露該對象的內部細節。(目前已經沒落);
  • 中介者模式,用一箇中介對象封裝一系列的對象交互,中介者使各對象不需要顯示地相互作用,從而使其耦合鬆散,而且可以獨立地改變它們之間的交互。
  • 備忘錄模式,在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。這樣以後就可將對象恢復到原先保存的狀態。通俗地講,備忘錄模式就是一個對象的備份模式,提供了一種程序數據的備份方法;
  • 觀察者模式,也叫做發佈訂閱模式,定義對象間一種一對多的依賴關係,使得每當一個對象改變狀態,則所有依賴於它的對象都會得到通知並被自動更新。
  • 狀態模式,狀態模式的核心是封裝,狀態的變更引起了行爲的變更。當一個對象內在狀態改變時允許其改變行爲,這個對象看起來像改變了其類。
  • 策略模式,定義一組算法,將每個算法封裝起來,並且使它們之間可以互換;
  • 模板方法模式,定義一個操作中的算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變一個算法的結構即可重定義該算法的某些框架;
  • 訪問者模式,封裝一些作用於某種數據結構中的各元素的操作,它可以在不改變數據結構的前提下定義作用於這些元素的新的操作。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章