由於[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(微核)模式等。
窗體頂端
軟體的架構與設計模式之模式的種類
由於 gof95 是論述軟體模式的著作的第一本,也是oo設計理論著作中最流行的一本,因此有些人常常使用設計模式 design pattern 一詞來指所有直接處理軟體的架構 設計 程式實現的任何種類的模式。另外一些人則強調要劃分三種不同層次的模式 架構模式 architectural pattern...
軟體的架構與設計模式之模式的種類介紹
由於 gof95 是論述軟體模式的著作的第一本,也是 oo設計理論著作中最流行的一本,因此有些人常常使用設計模式 design pattern 一詞來指所有直接處理軟體的架構 設計 程式實現的任何種類的模式。另外一些人則強調要劃分三種不同層次的模式 架構模式 architectural patter...
軟體的架構與設計模式之什麼是架構
2005 06 07 14 18 出處 天極網 什麼是軟體系統的架構 architecture 一般而言,架構有兩個要素 它是乙個軟體系統從整體到部分的最高層次的劃分。乙個系統通常是由元件組成的,而這些元件如何形成 相互之間如何發生作用,則是關於這個系統本身結構的重要資訊。詳細地說,就是要包括架構元...