軟件架構模式---分層架構

1、什麼是架構模式?

        剛作了軟考題,有一道關於提問設計模式是什麼的,設計模式是一套解決相似問題的經驗的總結。採用設計模式的目的是爲了可重用代碼。而架構模式也一個通用的、可重用的解決方案。我以爲他們的區別是,設計模式跟代碼更有直接關係,html

架構模式站在系統全局的角度解決子系統之間的關係、功能需求與非功能的優先級與取捨原則等。數據庫

2、分層模式

(參考https://www.cnblogs.com/IcanFixIt/p/7518146.html)設計模式

       這種模式也稱爲多層體系架構模式。它能夠用來構造能夠分解爲子任務組的程序,每一個子任務都處於一個特定的抽象級別。每一個層都爲下一個提供更高層次服務。分層模式的關鍵點在於肯定依賴:即經過分層,能夠限制子系統間的依賴關係,架構

使系統以更鬆散的方式耦合,從而更易於維護。性能

通常信息系統中最多見的是以下所列的4層:表示層,業務邏輯層,持久層,應用層。spa

模式介紹:設計

  • 表示層(也稱爲UI層):主要對用戶的請求接受,以及數據的返回,爲客戶端提供應用程序的訪問。
  • 應用層(也稱爲服務層):服務層的做用就是將表現層與業務邏輯層之間完成解耦。那麼表現層中就不會出現任何的業務代碼,固然這樣帶來的好處也是顯而易見的,就是當咱們修改業務層代碼時,咱們不須要修改表現層的代碼,

固然若是服務層設計的很差,那麼可能會形成反效果。htm

  • 業務邏輯層(也稱爲領域層):主要是針對具體的問題的操做,也能夠理解成對數據層的操做,對數據業務邏輯處理,若是說數據層是積木,那邏輯層就是對這些積木的搭建。無疑是系統架構中體現核心價值的部分。它的關注點

主要集中在業務規則的制定、業務流程的實現等與業務需求有關的系統設計,也便是說它是與系統所應對的領域邏輯有關blog

  • 數據訪問層(也稱爲持久化層):主要是針對非原始數據(數據庫或者文本文件等存放數據的形式)的操做層,而不是指原始數據,也就是說,是對數據庫的操做,而不是數據,具體爲業務邏輯層或表示層提供數據服務。

使用場景:接口

  • 通常的桌面應用程序
  • 電子商務Web應用程

 

模式特色

 

  •  每一個模塊必須屬於某個層次,爲上層提供服務;同時委派任務給下層模塊。
  • 任何一個模塊,都不能逆層次調用;屬於下層的模塊,不得調用(耦合)上層或上層次的模塊。任何一個模塊,都不得跨層次調用。

使用場景:

設計模式實現:

  門面模式 ——咱們對於每一個模塊或者每一個層次都會設計一個「門面」來下降耦合的複雜程度。

  策略模式——抽象層次會隱藏底層的實現細節,這就是策略模式最基本的設計,咱們每每會把上層做爲功能接口,下層做爲可選的策略來實現。

優勢

一、開發人員能夠只關注整個結構中的其中某一層;

二、能夠很容易的用新的實現來替換原有層次的實現;

三、能夠下降層與層之間的依賴;

四、有利於標準化;

五、利於各層邏輯的複用。

六、結構更加的明確

七、在後期維護的時候,極大地下降了維護成本和維護時間

缺點

一、下降了系統的性能。這是不言而喻的。若是不採用分層式結構,不少業務能夠直接造訪數據庫,以此獲取相應的數據,現在卻必須經過中間層來完成。

二、有時會致使級聯的修改。這種修改尤爲體如今自上而下的方向。若是在表示層中須要增長一個功能,爲保證其設計符合分層式結構,可能須要在相應的業務邏輯層和數據訪問層中都增長相應的代碼。

三、增長了開發成本。

相關文章
相關標籤/搜索