由於
[gof95]
是論述軟體模式的著作的第一本,也是
oo設計理論著作中最流行的一本,因此有些人常常使用設計模式(
design pattern
)一詞來指所有直接處理軟體的架構、設計、程式實現的任何種類的模式。另外一些人則強調要劃分三種不同層次的模式:架構模式
(architectural pattern)
、設計模式
(design pattern)
、成例(idiom)
。成例有時稱為**模式
(coding pattern)
。這三者之間的區
別在於三種不同的模式存在於它們各自的抽象層次和具體層次上。架構模式是乙個系統的高層次策略,涉及到大尺度的元件以及整體性質和力學。架構模式的好壞可
以影響到總體布局和框架性結構。設計模式是中等尺度的結構策略。這些中等尺度的結構實現了一些大尺度元件的行為和它們之間的關係。模式的好壞不會影響到系
統的總體布局和總體框架。設計模式定義出子系統或元件的微觀結構。**模式(或成例)是特定的範例和與特定語言有關的程式設計技巧。**模式的好壞會影響到一
個中等尺度元件的內部、外部的結構或行為的底層細節,但不會影響到乙個部件或子系統的中等尺度的結構,更不會影響到系統的總體布局和大尺度框架。
**模式或成例
(coding pattern
或idiom)
**模式(或成例)是較低層次的模式,並與程式語言密切相關。**模式描述怎樣利用乙個特定的程式語言的特點來實現乙個元件的某些特定的方面或關係。
較為著名的**模式的例子包括雙檢鎖(
double-check locking
)模式等。
設計模式
(design pattern)
乙個設計模式提供一種提煉子系統或軟體系統中的元件的,或者它們之間的關係的綱要設計。設計模式描述普遍存在的在相互通訊的元件中重複出現的結構,這種結構解決在一定的背景中的具有一般性的設計問題。
設計模式常常劃分成不同的種類,常見的種類有:
建立型設計模式,如工廠方法(
factory method
)模式、抽象工廠(
abstract factory
)模式、原型(
prototype
)模式、單例(
singleton
)模式,建造(
builder
)模式等
結構型設計模式,如合成(
composite
)模式、裝飾(
decorator
)模式、**(
proxy
)模式、享元(
flyweight
)模式、門面(
facade
)模式、橋梁(
bridge
)模式等
行為型模式,如模版方法(
template method
)模式、觀察者(
observer
)模式、迭代子(
iterator
)模式、責任鏈(
chain of responsibility
)模式、備忘錄(
memento
)模式、命令(
command
)模式、狀態(
state
)模式、訪問者(
visitor
)模式等等。
以上是三種經典型別,實際上還有很多其他的型別,比如
fundamental
型、partition
型,relation
型等等。設計模式在特定的程式語言中實現的時候,常常會用到**模式。比如單例(
singleton
)模式的實現常常涉及到雙檢鎖(
double-check locking
)模式等。
架構模式
(architectural pattern)
乙個架構模式描述軟體系統裡的基本的結構組織或綱要。架構模式提供一些事先定義好的子系統,指定它們的責任,並給出把它們組織在一起的法則和指南。有些作者把這種架構模式叫做系統模式
[stelting02]
。乙個架構模式常常可以分解成很多個設計模式的聯合使用。顯然,
mvc模式就是屬於這一種模式。
mvc模式常常包括調停者(
mediator
)模式、策略(
strategy
)模式、合成(
composite
)模式、觀察者(
observer
)模式等。
此外,常見的架構模式還有:
•layers
(分層)模式,有時也稱
tiers模式•
blackboard
(黑板)模式
•broker
(中介)模式
•distributed process
(分散過程)模式
•microkernel
(微核)模式
架構模式常常劃分成如下的幾種:
一、from mud to structure
型。幫助架構師將系統合理劃分,避免形成乙個物件的海洋(
a sea of objects
)。包括
layers
(分層)模式、
blackboard
(黑板)模式、
pipes/filters
(管道/
過濾器)模式等。
二、分散系統(
distributed systems
)型。為分布式系統提供完整的架構設計,包括像
broker
(中介)模式等。
三、人機互動(
interactive systems
)型,支援包含有人機互動介面的系統的架構設計,例子包括
mvc(
model-view-controller
)模式、
pac(
presentation-abstraction-control
)模式等。
四、adaptable systems
型,支援應用系統適應技術的變化、軟體功能需求的變化。如
reflection
(反射)模式、
microkernel
(微核)模式等。
參考:《設計模式》gof、《企業應用架構模式》、《面向模式的軟體體系架構》
軟體的架構與設計模式之模式的種類
由於 gof95 是論述軟體模式的著作的第一本,也是oo設計理論著作中最流行的一本,因此有些人常常使用設計模式 design pattern 一詞來指所有直接處理軟體的架構 設計 程式實現的任何種類的模式。另外一些人則強調要劃分三種不同層次的模式 架構模式 architectural pattern...
軟體的架構與設計模式之模式的種類
由於 gof95 是論述軟體模式的著作的第一本,也是oo設計理論著作中最流行 的 一本,因此有些人常常使用設計模式 design pattern 一詞來指所有直接處理軟體的架構 設計 程式實現的任何種類的模式。另外一些人則強調要劃分三種不同層次的模式 架構模式 architectural patte...
軟體的架構與設計模式之什麼是架構
2005 06 07 14 18 出處 天極網 什麼是軟體系統的架構 architecture 一般而言,架構有兩個要素 它是乙個軟體系統從整體到部分的最高層次的劃分。乙個系統通常是由元件組成的,而這些元件如何形成 相互之間如何發生作用,則是關於這個系統本身結構的重要資訊。詳細地說,就是要包括架構元...