設計模式 設計模式簡介

2022-09-03 09:06:13 字數 1883 閱讀 6517

本次系列的文章摘自《設計模式:可復用物件導向軟體工程的基礎》(erich gamma 等著,李英軍 等 譯)。

本文只是對設計模式做乙個簡單的介紹。

設計模式一樣而言,有四個基本要素:1、設計模式;2、問題;3、解決方案;4、效果。設計模式是對被用來在特定的場景下解決一般設計問題的類和相互通訊的物件的描述。

設計模式的分類主要有兩種,其一是根據目的準測分類,即模式是用來完成什麼工作的;其二是範圍準則,指定模式主要是用於類還是用於物件。分類結果如下圖:

目的建立型

結構型行為型範圍類

factory method

adapter(類)

interpret

template method

物件abstract factory

builder

prototype

singleton

adapter(物件)

bridge

composite

decorator

façade

flyweight

proxy

chain of responsibility

command

iterator

mediator

memento

observer

state

strategy

visitor

那麼,如何選擇設計模式呢?

主要從以下的幾個方面來著手:

1.考慮設計模式是怎麼樣解決設計問題的。注意各個模式對於找到合適的物件、決定物件的粒度、指定物件的介面的影響。

2.瀏覽模式的意圖部分 。通讀每個模式的意圖,找到和問題相關的乙個或多個模式。

3.研究模式怎麼樣相互關聯。設計模式之間的關係如下圖所示:                                            

4.檢查重新設計的原因。

5.考慮哪些設計是可以改變的。主要是考慮那些是可以變化卻不引起重新設計。設計模式所支援的設計的可變方面如下所示。

目的設計模式

可變的方面

建立abstract factory

builder

factory method

prototype 

singleton

產品物件家族

如何建立乙個組合物件

被例項化的子類

被例項化的類

乙個類的唯一例項

結構adapter

bridge 

composite

decorator

facade

flyweight

proxy

物件的介面

物件的實現

乙個類的結構和組成

物件的職責,不產生子類

乙個子系統的介面

物件的儲存開銷

如何訪問乙個物件;該物件的位置

行為chain of responsibility

command

interpreter

iterator

mediator

memento

observer

state

strategy

template method

visitor

滿足乙個請求的物件

何時、怎麼樣滿足乙個請求

乙個語言的文法以及解釋

如何遍歷、訪問乙個聚合的各元素

物件間怎麼樣互動、和誰互動

乙個物件中哪些私有資訊存放在該物件之外,以及在什麼時候進行儲存

多個物件依賴於另外乙個物件,而這個物件如何保持一致

物件的狀態

演算法演算法中的某些步驟

某些可做用於乙個物件上的操作,但不修改這個物件的類

設計模式詳解 設計模式簡介

乙個模式應該包括的方面 模式的名稱 模式的目的 模式的實現 模式的約束 為什麼要學習設計模式?1.利用解決方案 2.建立通用術語,方便交流 3.對於問題,設計過程和物件導向,模式給你乙個更高層次的視角,這樣的視角將你從過早處理細節中解放出來。4.即使你不使用直接設計模式,避免龐大的繼承體系也會導致改...

設計模式簡介

設計模式 design pattern 是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。設計模式是軟體工程 的基石脈絡,如同大廈 的結構一樣。模式名稱 pattern name 問題 problem 解決方案 solution 效果 consequences 設計模式分為三種型別,共...

設計模式簡介

1.裝飾模式 顧名思義,裝飾模式就是給乙個物件增加一些新得功能,而且是動態的,要求裝飾物件和被裝飾物件實現同乙個介面,且裝飾物件中持有被裝飾物件的乙個例項.2.觀察者模式 簡單來說,當乙個物件變化時,其他依賴該物件的物件都會收到通知,並且隨著變化 物件之間是一種一對多的關係.3.工廠模式 客戶端需要...