架構應用(9),分層架構

分層架構是一種常見的架構模式(架構風格),也叫N層架構,常見的2層C/S,B/S架構,三層架構MVC,MVP架構,操作系統(tǒng)的內核架構達到5層,3層以上的架構比較少見。

分層架構風格:

層次系統(tǒng)組織成一個層次結構,每一層為上層服務,作為下層客戶,內部的層只對相鄰的層可見。

這種風格支持基于可增加抽象層的設計,允許將一個復雜問題分解成一個增量步驟序列的實現(xiàn)。

典型例子:分層通信協(xié)議。每一層提供一個抽象的功能,作為上層通信的基礎。較低的層次定義低層的交互,最低層通常只定義硬件物理連接。

優(yōu)點:

??基于抽象程度遞增的系統(tǒng)設計,把一個復雜系統(tǒng)按遞增的步驟進行遞減。

??支持功能增強,每一層只和相鄰的層交互,功能的改變只會影響相鄰的上下層。

??支持軟件重用。定義一組標準的接口,允許各種不同的實現(xiàn)方法。

缺點:

??不是每個系統(tǒng)都可以容易的劃分層次。

??很難找到一個合適的,正確的層次抽象方法。

MVC 架構、MVP 架構

????劃分的對象是單個業(yè)務子系統(tǒng) ,劃分的維度是職責, 將不同的職責劃分到獨立層, 但各 層的依賴關系 比較靈活 。

邏輯分層架構

????劃分的對象可以是單個業(yè)務子系統(tǒng),也可以是整個業(yè)務系統(tǒng), 劃分的維度也是職責。雖 然都是基于職責劃分, 但邏輯分層架構中的層是自頂向下依賴的 。典型的 J2EE 系統(tǒng)架構也是邏輯分層架構。

分層架構系統(tǒng)的本質在于:隔離關注點,每層的組件只需要處理本層的邏輯。分層時要保證層與層之間的依賴是穩(wěn)定的,層與層之間依賴于接口,可以更好的支撐快速擴展;按照層之間進行依次傳遞,不能在層之間進行跳躍。

分層結構的代價就是冗余,不管業(yè)務多簡單,每層都必須參與處理。分層架構的優(yōu)勢就體現(xiàn)在通過分層強制約束兩兩依賴, 一旦自由選擇繞過分層,時間一長,架構就會變得混亂。

雖然分層架構的實現(xiàn)在某些場景下看起來有些煩瑣和冗余,但復雜度卻很低。

分層架構另外一個缺點就是性能,因為每一次業(yè)務請求都需要穿越所有的架構分層, 有一些事情是多余的,多少都會有一些性能的浪費 。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 在系統(tǒng)從 0 到 1 的階段,為了讓系統(tǒng)快速上線,我們通常是不考慮分層的。 但是隨著業(yè)務的越來越復雜,大量的代碼糾...
    逗逼程序員閱讀 3,670評論 0 3
  • 相比于高性能、高可用架構模式在最近幾十年的迅猛發(fā)展來說,可擴展架構模式的發(fā)展可以說是步履蹣跚,最近幾年火熱的微服務...
    d_quan閱讀 277評論 0 1
  • 一、生命周期 一個事物一旦出生,就必然會長大,變異,一旦長大,就面臨著衰老,接下來就是消亡了,這個過程就稱為一個事...
    ZyBlog閱讀 2,858評論 1 11
  • 1.從傳統(tǒng)三層架構與DDD分層架構的編程演變其實是思想的演變。 傳統(tǒng)三層架構,即用戶界面層UI、業(yè)務邏輯層BAL、...
    咖啡電視閱讀 8,637評論 0 6
  • 也就是切齒顯得更長了。我還有兩分鐘。剛完成采訪的彼得森先生馬上站了起來。畫的狀態(tài)在此之前就很糟。 我來過很多次了。...
    tyssjbsemj閱讀 206評論 0 0

友情鏈接更多精彩內容