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