分層(Layer)模式是最常見的一種架構模式。
分層描述的是這樣一種架構設計過程:從最低級別的抽象開始,稱為第1層。這是系統的基礎。通過將第J層放置在第J-1層的上面逐步向上完成抽象階梯,直到到達功能的最高級別,稱為第N層。
因而分層模式就可以定義為:將解決方案的組件分隔到不同的層中。每一層中的組件應保持內聚性,並且應大致在同一抽象級別。每一層都應與它下面的各層保持松散耦合。
分層模式的關鍵點在於確定依賴:即通過分層,可以限制子系統間的依賴關系,使系統以更松散的方式耦合,從而更易於維護。
對系統進行分層有如下基本原則:
— 可見度。各子系統只能與同一層及其下一層的子系統存在依賴關系。
— 易變性。最上層放置隨用戶需求的改變而改變的元素。最底層放置隨實施平台(硬件、語言、操作系統、數據庫等)的改變而改變的元素。中間的夾層放置廣泛適用於各種系統和實施環境的元素。如果在這些大類中進一步划分有助於對模型進行組織,則添加更多的層。
— 通用性。一般將抽象的模型元素放置在模型的低層。如果它們不針對於具體的實施,則傾向於將其放置在中間層。
— 層數。對於小型系統,三層就足夠了。對於復雜系統,通常需要5-7層。無論復雜程度如何,如果超過10層,就需要慎重考慮了。層數越多,越需慎重。
常見的分層架構模式:
1.客戶端-服務器模型(Client-Server,C/S)。
2.三層模型:用戶表示層、業務邏輯層、數據層。
3.多層結構的技術組成模型:表現層、中間層、數據層。
4.網絡系統常用三層結構:核心層、匯聚層和接入層。
5.RUP典型分層方法:應用層、專業業務層、中間件層、系統軟件層。
6.基於Java的B/S模式系統結構:瀏覽器端、服務器端、請求接收層、請求處理層。
7.某六層結構:功能層(用戶界面)、模塊層、組裝層(軟件總線)、服務層(數據處理)、數據層、核心層。