軟體設計常見的23種設計模式

2022-01-22 13:05:54 字數 1874 閱讀 5574

在現代軟體開發當中,設計模式起到至關重要的作用。尤其是自從物件導向的語言普遍使用以後,促成了團隊合作設計的熱潮,而在此時,沒有乙個好的設計模式,軟體設計幾乎成了不可能完成的任務。

一般模式有4個基本要素:模式名稱(pattern name)、問題(problem)、解決方案(solution)、效果(consequences)。

常見23種模式概述:

1) 抽象工廠模式(abstract factory):提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。

2) 介面卡模式(adapter):將乙個類的介面轉換成客戶希望的另外乙個介面。介面卡模式使得原本由於介面不相容而不能一起工作的類可以一起工作。

3) 橋梁模式(bridge):將抽象部分與它的實現部分分離,使它們都可以獨立地變化。

4) 建造模式(builder):將乙個複雜物件的構建與它的表示分離,使同樣的構建過程可以建立不同的表示。

5) 責任鏈模式(chain of responsibility):為解除請求的傳送者和接收者之間耦合,而使多個物件都有機會處理這個請求。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它。

6) 命令模式(command):將乙個請求封裝為乙個物件,從而可用不同的請求對客戶進行引數化;對請求排隊或記錄請求日誌,以及支援可取消的操作。

7) 合成模式(composite):將物件組合成樹形結構以表示「部分-整體」的層次結構。它使得客戶對單個物件和復合物件的使用具有一致性。

8) 裝飾模式(decorator):動態地給乙個物件新增一些額外的職責。就擴充套件功能而言,它能生成子類的方式更為靈活。

9) 門面模式(facade):為子系統中的一組介面提供乙個一致的介面,門面模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。

10) 工廠方法(factory method):定義乙個vwin娛樂城用於建立物件的介面,讓子類決定將哪乙個類例項化。factory method 使乙個類的例項化延遲到其子類。

11) 享元模式(flyweight):運用共享技術以有效地支援大量細粒度的物件。

12) 直譯器模式(interpreter):給定乙個語言,定義它的語法的一種表示,並定義乙個直譯器,該直譯器使用該表示解釋語言中的句子。

13) 迭代子模式(iterator):提供一種方法順序訪問乙個聚合物件中的各個元素,而又不需暴露該物件的內部表示。

14) 調停者模式(mediator):用乙個中介物件來封裝一系列的物件互動。中介者使各物件不需要顯式的內部表示。

15) 備忘錄模式(memento):在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到儲存的狀態。

16) 觀察者模式(observer):定義物件間的一種一對多的依賴關係,以便當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並自動重新整理。

17) 原始模型模式(prototype):用原型例項指定建立物件的種類,並且通過拷貝這個原型建立新的物件。

18) **模式(proxy):為其他物件提供乙個**以控制對這個物件的訪問。

19) 單例模式(singleton):保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。

20) 狀態模式(state):允許乙個物件在其內部狀態改變時改變它的行為。物件看起來似乎修改了它所屬的類。

21) 策略模式(strategy):定義一系列的演算法,把它們乙個個封裝起來,並且使它們可相互替換。本模式使得演算法的變化可獨立於使用它的客戶。

22) 模板模式(template method):定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。

23) 訪問者模式(visitor):表示乙個作用於某物件結構中的各元素的操作。該模式可以實現在不改變各元素的類的前提下定義作用於這些元素的新操作。

23種軟體設計模式

軟體設計模式,是一套被反覆使用 眾所周知的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓 更容易被他人理解 保證 可靠性 程式的重用性。1.建造模式 builder 將乙個複雜物件的構建與它的表示分離,使同樣的構建過程可以建立不同的表示。2.抽象工廠模式 abstract facto...

常見的23種設計模式

abstract factory 這個是 抽象工廠模式 用於提供乙個建立一系列相關或相互依賴物件的介面,而無需指定他們具體的類 adapter 介面卡模式,根據字面意思很好理解 將每乙個類的介面轉換成客戶希望的另外乙個介面 使得原本介面不相容而不能一起工作的那些類可以一起工作 bridge 橋梁模式...

23種設計模式的幾種常見的設計模式

class one object instants none 建立乙個標記 from threading import lock 匯入 lock lock 例項化鎖 def new cls,args,kwargs 構建函式 if not cls.instants 判斷,如果沒有構建空間 with c...