一句話理解設計模式

於玉桔發表於2020-01-13

回顧目錄

單例模式(Singleton):

確保某個類只有一個例項,而且自行例項化並向整個系統提供這個例項。

工廠方法模式(Factory):

定義一個用於建立物件的介面, 讓子類決定例項化哪一個類。 工廠方法使一個類的例項化延遲到其子類。

抽象工廠模式(Abstract):

為建立一組相關或相互依賴的物件提供一個介面, 而且無須指定它們 的具體類。

模板方法模式(Template):

定義一個操作中的演算法的框架, 而將一些步驟延遲到子類中。 使得子類可以不改 變一個演算法的結構即可重定義該演算法的某些特定步驟。

建造者模式(Builder):

將一個複雜物件的構建與它的表示分離, 使得同樣的構建過程可以建立不同的表示。

代理模式(Proxy):

為其他物件提供 一種代理以控制對這個物件的訪問。

原型模式(Prototype):

用原型例項指定建立物件的種類, 並且通過拷貝這些原型建立新的對 象。

中介者模式(Mediator):

用一箇中介物件封裝一系列的物件 互動, 中介者使各物件不需要顯示地相互作用, 從而使其耦合鬆散, 而且可以獨立地改變它們之間的互動。

命令模式(Command):

將一個請求封裝成一個物件, 從而讓你使用不同的請求把客戶端引數化, 對請 求排隊或者記錄請求日誌, 可以提供命令的撤銷和恢復功能。

責任鏈模式:

使多個物件都有機會處理請求,從而避免了請求的傳送者和接受者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有物件處理它為止。

裝飾模式(Decorator):

動態地給一個物件新增一些額外的職責。就增加功能來說,裝飾模式相比生成子類更為靈活。

策略模式(Strategy):

定義一組演算法,將每個演算法都封裝起來,並且使它們之間可以互換。

介面卡模式(Adapter):

將一個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。

迭代器模式(Iterator):

它提供一種方法訪問一個容器物件中各個元素,而又不需暴露該物件的內部細節。

組合模式(Composite):

將物件組合成樹形結構以表示“部分-整體”的層次結構,使得使用者對單個物件和組合物件的使用具有一致性。

觀察者模式(Observer):

定義物件間一種一對多的依賴關係,使得每當一個物件改變狀態,則所有依賴於它的物件都會得到通知並被自動更新。

門面模式(Facade):

要求一個子系統的外部與其內部的通訊必須通過一個統一的物件進行。門面模式提供一個高層次的介面, 使得子系統更易於使用。

備忘錄模式(Memento):

在不破壞封裝性的前提下,捕獲一個物件的內部狀態,並在該物件之外儲存這個狀態。 這樣以後就可將該物件恢復到原先儲存的狀態。

訪問者模式(Visitor):

封裝一些作用於某種資料結構中的各元素的操作,它可以在不改變資料結構的前提下定義作用於這些元素的新的操作。

狀態模式:

當一個物件內在狀態改變時允許其改變行為, 這個物件看起來像改變了其類。

直譯器模式(Interpreter):

給定一門語言,定義它的文法的一種表示, 並定義一個直譯器,該直譯器使用表示來解釋語言中的句子。

享元模式(Flyweight):

使用共享物件可有效地支援大量的細粒度的物件。

橋樑模式(Bridge):

將抽象和實現解耦, 使得兩者可以獨立地變化。

相關文章