文章目錄
- 介面型模式
- 責任型模式
- 構造型模式
- 操作型模式
- 擴充型模式
摘抄自:《設計模式 Java手冊》
介面型模式
適配器模式 旨在利用現有的類所提供的服務,修改其介面,從而達到使用者期望。
面板模式 旨在為子系統提供一個介面,使之更加容易被使用。
組合模式 旨在讓使用者能夠用統一的介面處理單個對象以及對象組合。
橋接模式 旨在將抽象(依賴抽象操作的類)與抽象操作的實現相分離,從而使抽象與實現能夠獨立變化。
責任型模式
單體模式 旨在確保某個類只有一個執行個體,並為之提供一個全域訪問點。
觀察者模式 旨在在多個對象之間定義一個一對多的依賴關係,以便當一個對象狀態改變的時候,其它所有依賴於這個對象的對象能夠得到通知,並被自動更新。
中介者模式 旨在定義一個對象來封裝一組對象之間的互動方式,這樣就避免了對象間的顯式引用,而且還可以單獨對這些對象的互動進行修改。
代理模式 旨在為某個對象提供一個代理來控制對該對象的訪問。
責任鏈模式 旨在將一個方法調用請求沿著責任鏈依次轉寄給下一個對象,讓每個對象都有一次機會決定自己是否處理該請求,從而降低了請求的寄件者與其接收者之間的 耦合程度。
享元模式 旨在通過共用來為大量的細粒度對象提供有效支援。
構造型模式
產生器模式 旨在把構造對象執行個體的代碼邏輯移到類的外部。
Factory 方法模式 旨在定義一個用於建立對象的介面,同時控制對哪個類進行執行個體化。
抽象原廠模式 旨在建立一系列相互關聯或相互依賴的對象。
原型模式 旨在拷貝一個現有對象產生新的對象。
備忘錄模式 旨在為對象提供狀態儲存和狀態恢複功能。
應用目的 |
應用模式 |
在構造對象之前逐步收集該對象與構造相關的資訊 |
產生器模式 |
延遲確定需要執行個體化的類 |
Factory 方法模式 |
構造一系列具有某個公用特性的對象 |
抽象原廠模式 |
根據給定的例子構造一個對象 |
原型模式 |
從對象的休眠版本重新建立對象,該休眠版本包含對象的內部狀態 |
備忘錄模式 |
操作型模式
模板方法模式 旨在在一個方法中實現一個演算法,並將演算法中某些步驟的定義延遲,從而使其它類可以重新定義這些步驟。
狀態模式 旨在將與狀態相關的處理邏輯分散到代表對象狀態的各個類中。
策略模式 旨在把可選的策略或方案封裝在不同的類中,並在這些類中實現一個共同的操作。
命令模式 旨在將請求封裝為一個對象,並將該請求對象作為參數;使用者可以提供不同的請求對象,如入隊請求,時間請求或者日記請求,也可以請求伴隨操作,如undo()操作。
解譯器模式 旨在使使用者可以根據自己定義的組合規則產生可執行檔對象。
擴充型模式
裝飾器模式 旨在使開發人員能夠動態地組織對象的行為。
迭代模式 旨在為開發人員提供一種順序訪問集合元素的方法。
訪問者模式 旨在讓代碼使用者能夠在不修改現有類階層的前提下擴充該類階層的行為。