企業架構模式 mdash mdash 分層

2021-05-24 03:07:14 字數 1487 閱讀 9627

一、分層設計的基本概念

在分解複雜的軟體系統時,軟體設計者用的最多的技術之一就是分層。在計算機體系機構中,可以看到,到處都有分層的例子,最為典型的,就是儲存器的層次結構,如圖所示:

圖1:計算機儲存器的層次模型

可以看到,儲存器的層次結構是按訪問速度、儲存容量等引數劃分的,不同的層次有不同的職責。cpu內部的暫存器組是訪問速度最快的儲存裝置,用於儲存cpu運算過程中的指令和資料;主存中儲存的的則是執行中程式(程序)需要的**和資料。由於cpu訪問主存的速度很慢,因此引入了快取記憶體處理器(快取記憶體),用於緩解cpu訪問暫存器和主存的速度差異。同樣,計算機網路中的tcp/ip協議棧也把層次性的設計思維體現的淋漓盡致:

圖2:tcp/ip協議棧的五層模型

在層次結構中,上層模組依賴於下層模組,下層模組為上層模組提供服務,在**中體現,就是上層可以呼叫下層提供的公共方法。比如應用層協議ftp架構在傳輸層tcp之上、tcp架構在網際網路層協議ip之上。

當用分層的觀點來考慮系統時,可以將各個子系統想象成「多層蛋糕」的形式,每一次都依託在其下層之上。在這種組織方式下,上層使用了下層定義的各種服務,而下層對上層一無所知。另外,每一層都對自己的上層隱藏其下層的細節。因此,第3層使用第2層提供的服務,第2層使用第1層提供的服務,第3層無需知道第1層的細節(當然,並非所有的分層架構都這麼隔絕)。

將系統按照層次分解有很多好處:

①在無需了解其他層次的基礎上,可以將某一層作為乙個整體來理解

②可以很容易替換某層的實現,只要其前後提供的服務(介面)相同即可

③可以將層次間的依賴性減到最低

④一旦構建好了某一層,就可以用它為很多上層服務提供支援。比如,tcp可以同時被telnet、ftp和http使用

分層式一種重要的技術,但也有缺陷

①層次有時會帶來級聯修改

②層次提供了一種間接性,因此過多的層次會影響效能

當人們討論分層時,常常不容易區分layer和tier。這兩個詞彙經常被用作同義詞,但是很多人還是認為tier意味著物理上的分離。客戶/伺服器系統常常被稱為「two-tier system」,其分離是物理上的分離:客戶端是一台台式電腦,而伺服器端則執行在在另乙個地方的伺服器。layer強調無需把不同的層次放在不同的計算機上執行。

二、三個基本層次

層次職責

表現層與使用者互動的介面

領域層(業務層)

業務邏輯,系統的核心

資料來源層

與資料庫、訊息系統及其他軟體包通訊

表現層:處理使用者與軟體的互動

資料來源層:主要關注與其他系統的互動。比如資料庫、訊息系統等。

在某些小型系統中,表現層跨過了領域層而直接去和資料來源層互動,實踐證明這樣也可以工作很好,不過這樣的系統的業務邏輯都很簡單。

三、參考資料

1、企業架構模式    martin flower  

[附:android平台架構圖、金山衛士產品架構圖]

《企業應用架構模式》 分層

在系統的分層組織方式下,上層通過介面使用下層定義的各種服務,下層對上層一無所知。每一層都對自己的上層隱藏其下層的細節,因此第4層無需知道第2層的細節。分層的好處 1.可以專注理解某一層,無需過多了解其他層次 2.可以替換某層的具體實現,只要前後提供的服務 介面 相同即可 3.可以將層次間的依賴性減到...

接觸《企業應用架構模式》

國慶七天的長假,過得有些昏昏冉冉。那麼期待的長假,在狠狠飽睡幾天之後居然有點想上班了,唉,真是 j 啊 前天去南山新開業的書城,沒有找到 企業應用架構模式 martin fowler著 呵,今天早上在 china pub 上下了訂單,中午就收到書了。趕快看了前面幾章,真是暢快之極啊!雖然有些東西我也...

企業應用架構模式之物件 關係結構模式

前面已經介紹了物件 關係行為模式,包括工作單元 標識對映 延遲載入,這些都是協調記憶體物件與關聯式資料庫之間行為操作的一些方法。記憶體物件與關聯式資料庫除了行為需要協調之外,在結構上也需要一些方法來保證彼此的完整,這就是物件 關係結構模式。這些方法主要有 標識域 外來鍵對映 關聯表對映 依賴對映 嵌...