在做軟體架構設計時,根據不同的抽象層次可分為三種不同層次的模式:架構模式(architectural pattern)、設計模式(design pattern)、**模式(coding pattern)。
架構模式是乙個系統的高層次策略,涉及到大尺度的元件以及整體性質和力學。架構模式的好壞可以影響到總體布局和框架性結構。
設計模式是中等尺度的結構策略。這些中等尺度的結構實現了一些大尺度元件的行為和它們之間的關係。模式的好壞不會影響到系統的總體布局和總體框架。設計模式定義出子系統或元件的微觀結構。
**模式(或成例)是特定的範例和與特定語言有關的程式設計技巧。**模式的好壞會影響到乙個中等尺度元件的內部、外部的結構或行為的底層細節,但不會影響到乙個部件或子系統的中等尺度的結構,更不會影響到系統的總體布局和大尺度框架。
乙個架構模式描述軟體系統裡的基本的結構組織或綱要。架構模式提供一些事先定義好的子系統,指定它們的責任,並給出把它們組織在一起的法則和指南。稱之為系統模式。
架構模式常常劃分成如下的幾種:
一、 模組結構(from mud to structure)型。幫助架構師將系統合理劃分,避免形成乙個物件的海洋。包括layers(分層)模式、blackboard(黑板)模式、pipes/filters(管道/過濾器)模式等。
二、分散系統(distributed systems)型。為分布式系統提供完整的架構設計,包括像broker(中介)模式等。
三、人機互動(interactive systems)型,支援包含有人機互動介面的系統的架構設計,例子包括mvc(model-view-controller)模式、pac(presentation-abstraction-control)模式等。
四、adaptable systems型,支援應用系統適應技術的變化、軟體功能需求的變化。如reflection(反射)模式、microkernel(微核)模式等。
乙個設計模式提供一種提煉子系統或軟體系統中的元件的,或者它們之間的關係的綱要設計。設計模式描述普遍存在的在相互通訊的元件中重複出現的結構,這種結構解決在一定的背景中的具有一般性的設計問題。
設計模式常常劃分成不同的種類,常見的種類有:
建立型設計模式,如工廠方法(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)模式等。
**模式(或成例)是較低層次的模式,並與程式語言密切相關。**模式描述怎樣利用乙個特定的程式語言的特點來實現乙個元件的某些特定的方面或關係。
較為著名的**模式的例子包括雙檢鎖(double-check locking)模式等。
軟體架構模式的種類
在做軟體架構設計時,根據不同的抽象層次可分為三種不同層次的模式 架構模式 architectural pattern 設計模式 design pattern 模式 coding pattern 架構模式是乙個系統的高層次策略,涉及到大尺度的元件以及整體性質和力學。架構模式的好壞可以影響到總體布局和框...
軟體架構模式的種類
在做軟體架構設計時,根據不同的抽象層次可分為三種不同層次的模式 架構模式 architectural pattern 設計模式 design pattern 模式 coding pattern 架構模式是乙個系統的高層次策略,涉及到大尺度的元件以及整體性質和力學。架構模式的好壞可以影響到總體布局和框...
軟體架構模式的種類
分類 架構設計 2012 05 16 16 06 33人閱讀收藏 舉報 目錄 架構模式 architectural pattern 設計模式 design pattern 模式 coding pattern 在做軟體架構設計時,根據不同的抽象層次可分為三種不同層次的模式 架構模式 architect...