設計模式與架構設計

2021-04-21 17:29:00 字數 2594 閱讀 9916

論設計模式在架構設計中的運用

·

設計模式

在我們現實的軟體專案開發中,常常會遇到一次又一次的關於軟體設計上的問題,而設計模式就針對那些問題提供了一系列的解決方案。設計模式是一種較高層次程式結構的設計策略、是一種技巧,它著重於為軟體系統

/子系統內部的各物件間提供乙個良好的通訊平台,協調各者之間的關係,使各物件的分工清晰、關係明顯,並提高軟體系統的重用性、可維護性。

經典的設計模式共有

23種,一般可分為三種型別;建立模式、結構模式、行為模型。

建立模式:如單件模式(

singleton)

單件模式使特定的物件在系統中全域性且存在唯一的乙個例項,適用於變化較少但會經常使用的物件,如用來儲存配置資訊的物件,如下圖:

結構模式:如外觀模式(

facade)

外觀模式為其它子系統或外部軟體系統,提供了訪問特定子系統內各物件的唯一入口,,外觀模式也可稱為一業務方法的包裝,適用於外部系統為了實現某一業務操作,需要同時訪問特定子系統內的多個物件的情況,如下圖:

行為模式:如模版模式(

template

模版模式固定了特定物件的行為

/操作形式,適用於當某方法的操作

/呼叫形式相對穩定,而實現方式可變的情況下使用,如下圖:

架構設計

軟體的架構就是軟體系統中高層次的結構,而架構設計則是在這高層次結構上,把軟體系統從整體到部分的高層次劃分的設計策略。軟體架構的好壞可以影響到總體布局和框架性結構,它可以分為縱向架構(按技術角度劃分)和橫向架構(按業務角度劃分)。

縱向架構:

從技術角度可將軟體系統劃分為不同的層(引用

layer

模式),如:介面層、業務層、資料層、基礎

/公用方法層,系統層等等。

模向架構:

從業務角度可將軟體系統劃分為不同的業務模組

/子系統,如在

crm系統中,有客戶資源管理模組、銷售過程模組、銷售費用管理模組等等。

架構設計當中存在著多種的模式,稱之為架構模式,如上面提到的

layer

模式,它把軟體系統邏輯地劃分為不同的層,層與層之間是有序依賴的,各層的變化一般都能很好的層限於這一層而不影響其它的層,層與層間的呼叫

/依賴關係如下圖:

利用軟體細化架構設計中的

5檢視方法,軟體的架構還可以分為: 1

)邏輯架構(邏輯檢視),如上面提到的

layer

模式把系統邏輯地劃分為不同的層。 2

)物理架構(物理檢視),如軟體系統是如何分布部署在不同的伺服器上。

·

架構設計與設計模式

如上所述,架構設計是一種高層次的系統結構的設計,而設計模式則是一種中層次的系統結構的設計策略,它用於支援架構設計。而架構設計當中又分為概念架構設計和細化架構設計,在細化架構設計裡提到的

5檢視方法,其中的邏輯檢視與設計模式息息相關。

利用邏輯檢視方法,結合

layer

架構模式把軟體系統劃分為不同的層,隨後在各層裡可以結合使用不同的設計模式,同時設計模式也可以穿插在不同的層之間運用。如下圖(介面層利用模版模式固定了各個頁面的某些方法的呼叫行為;而介面層通過外觀模式訪問業務層中相應的業務方法;資料層中則利用了單件模式把

xml配置資訊存放在乙個全域性的唯一例項裡面):

iOS設計模式與架構設計

ios開發中常用的設計模式有以下幾種 1 mvc模式 2 委託 模式 3 觀察者模式 架構設計 好的架構設計可以提高開發效率 減少 冗餘 提高元件模組的可復用性等優點。ios開發中通常採用是是分層架構設計,其目的是降低耦合,同時提高應用的可復用性 可擴充套件性。1 表示層 ios中的表示層是由uik...

架構設計開篇 架構設計的目標與衡量

程式設計即設計,即架構。架構,這個詞比較神秘,以致於很多程式設計師望而卻步,以為要什麼了不得的本事。確實的,架構設計是一種高遠的目標,但千里之行,始於足下。架構的目標是什麼呢?實現所需服務 架構,致力於以更低成本 更高效率 更高質量地實現所需服務。架構,是兼顧質量 效率與成本的魔法。但架構並不研究如...

salesforce 架構設計 從架構設計到架構師

因為碎片化的時間多了,所以開始刷起某乎了,關注了架構相關的板塊,也順手回答了一些問題。發現有很多同道中人正在經歷著我前兩年經歷的階段,對於做架構沒有相對具象的一些理解,更沒有系統化的認識。所以把最近回答的一些內容整理一下,權當記錄,留給3年後的自己 按慣例,容許我裝x開頭 一 架構的定義 在軟體開發...