軟體架構模式基本概念及三者區別

2021-07-24 02:32:36 字數 2041 閱讀 8110

在做軟體架構設計時,根據不同的抽象層次可分為三種不同層次的模式:架構模式(architectural pattern)、設計模式(design pattern)、**模式(coding pattern)。

架構模式是乙個系統的高層次策略,涉及到大尺度的元件以及整體性質和力學。架構模式的好壞可以影響到總體布局和框架性結構。

設計模式是中等尺度的結構策略。這些中等尺度的結構實現了一些大尺度元件的行為和它們之間的關係。模式的好壞不會影響到系統的總體布局和總體框架。設計模式定義出子系統或元件的微觀結構。

**模式(或成例)是特定的範例和與特定語言有關的程式設計技巧。**模式的好壞會影響到乙個中等尺度元件的內部、外部的結構或行為的底層細節,但不會影響到乙個部件或子系統的中等尺度的結構,更不會影響到系統的總體布局和大尺度框架。

架構模式(architectural pattern)

乙個架構模式描述軟體系統裡的基本的結構組織或綱要。架構模式提供一些事先定義好的子系統,指定它們的責任,並給出把它們組織在一起的法則和指南。稱之為系統模式。

•mvc模式,乙個架構模式常常可以分解成很多個設計模式的聯合使用。mvc模式常常包括調停者(mediator)模式、策略(strategy)模式、合成(composite)模式、觀察者(observer)模式等。

•layers(分層)模式,有時也稱tiers模式

•blackboard(黑板)模式

•broker(中介)模式

•distributed process(分散過程)模式

•microkernel(微核)模式

架構模式常常劃分成如下的幾種:

一、 模組結構(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(微核)模式等。

設計模式(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)模式等。

**模式(coding pattern)

**模式(或成例)是較低層次的模式,並與程式語言密切相關。**模式描述怎樣利用乙個特定的程式語言的特點來實現乙個元件的某些特定的方面或關係。

較為著名的**模式的例子包括雙檢鎖(double-check locking)模式等

軟體架構模式基本概念及三者區別

在做軟體架構設計時,根據不同的抽象層次可分為三種不同層次的模式 架構模式 architectural pattern 設計模式 design pattern 模式 coding pattern 架構模式是乙個系統的高層次策略,涉及到大尺度的元件以及整體性質和力學。架構模式的好壞可以影響到總體布局和框...

軟體架構的基本概念

軟體構架 是什麼,你是怎麼理解軟體架構的?二派觀點 組成派 軟體系統的構架將系統描述為計算元件與元件的互動。計算元件是泛指,可以進一步細分為,處理元件 資料元件 連線元件等 總之。元件可以是子系統 框架 模組 類等不同粒度的軟體單元。它們可以擔負不同的職責。決策派 rup中對軟體架構的定義 軟體架構...

RAID基本概念及配置(軟體實現)

前言 磁碟是計算機儲存裝置中讀寫能力最慢的一環,能利用有限的成本提高磁碟讀寫能力這一技術尤為重要。特別是在當下大資料環境下,磁碟的讀寫能力以及可靠性越來越受到重視。raid redundant arrays of independent disks 是解決這一問題的重要技術之一,它是由美國加利福尼亞...