業務層組織模式
四種組織業務邏輯模式:事務腳本模式、活動記錄模式、貧血型模式和領域模式算法
Transaction Script模式
- 事務腳本模式是組織業務邏輯的模式中最簡單,也是最容易理解的。採用面向過程的方式來組織業務邏輯。
- 系統的一個流程又會被實如今爲一個方法,一個方法會作完全部的事情。
優勢:數據庫
- 它是大多數開發者都可以理解的一個簡單的過程模型。
- 它可以與使用行數據入口或者表數據入口的簡單數據源很好的協做。
缺點:當系統逐漸變大,業務邏輯也逐漸變複雜的時候,它的問題就會凸顯出來,系統中存在大量的方法,並且方法中處處都是重複代碼。設計模式
Active Record模式
- 活動記錄模式:當系統中的業務類和數據庫中表存在一一對應關係的時候,能夠採用這個模式。
- 每一個業務對象都表明了數據表中的一行數據,而且業務對象還包含了數據的增刪改查方法
- 每一個業務對象各自負責本身的數據持久化邏輯和相關的業務邏輯
Domain Model模式
- 在領域模型中,每一個對象都承擔了一部分的邏輯
- 領域模型中的沒有業務類都是對現實世界中業務概念的抽象,它不單單包含業務活動中的數據,還包含了業務規則
- 把領域概念轉換爲業務類的過程叫「領域建模」,建模的結果就是獲得業務模型。
- 與活動記錄模式區別:領域模型的業務實體對如何持久化本身的數據一無所知,而且業務類也沒有必要和數據模型一一對應。
Anemic Domain Model模式與實戰
- 貧血型領域模型將與自身相關的業務處理邏輯所有轉移到模型以外
- 缺點是領域服務類中的代碼更加結構化了
業務層經常使用的設計模式
工廠方法模式
工廠方法(Factory Method)模式:定義一個建立對象的接口,但由子類來決定要實例化的類是哪一個。主要目的就是隱藏對象的建立。架構
在工廠方法模式中體現了DIP依賴倒置原則。設計
裝飾者模式
裝飾者模式體現了一個很重要的設計思想:優先採用組合。而不是繼承。對象
模板方法模式
- 模板方法模式定義了一個操做算法的骨架,而將一些步驟延遲到了子類。模板方法模式使得子類能夠在不改變算法結構的狀況下,從新定義算法中的某些步驟。
- 最直觀的理解就是「模板」:包括變化和不變得兩個部分,將變化的部分給子類實現。
- 模板方法中有定義「鉤子」。鉤子是一種被聲明在抽象類中的方法。
狀態模式
狀態模式容許對象在內部狀態改變時改變它的行爲,對象看起來好像修改了它的類。blog
策略模式
- 策略模式定義了一系列算法,並將它們分別封裝了起來,讓它們之間能夠相互替換。
- 此模式讓算法的變化獨立於使用算法的客戶
業務層經常使用的企業架構模式
層超類型模式
層超類型(layer Super),讓某個類型充當一層全部類型的超類。繼承
層超類型模式的思想極爲簡單:經過繼承達到重用的目的。接口