架構與設計的流程和核心概念筆記:3、業務層設計

 

業務層組織模式

四種組織業務邏輯模式:事務腳本模式、活動記錄模式、貧血型模式和領域模式算法

Transaction Script模式

  • 事務腳本模式是組織業務邏輯的模式中最簡單,也是最容易理解的。採用面向過程的方式來組織業務邏輯。
  • 系統的一個流程又會被實如今爲一個方法,一個方法會作完全部的事情。

優勢:數據庫

  • 它是大多數開發者都可以理解的一個簡單的過程模型。
  • 它可以與使用行數據入口或者表數據入口的簡單數據源很好的協做。

缺點:當系統逐漸變大,業務邏輯也逐漸變複雜的時候,它的問題就會凸顯出來,系統中存在大量的方法,並且方法中處處都是重複代碼。設計模式


Active Record模式

  • 活動記錄模式:當系統中的業務類和數據庫中表存在一一對應關係的時候,能夠採用這個模式。
  • 每一個業務對象都表明了數據表中的一行數據,而且業務對象還包含了數據的增刪改查方法
  • 每一個業務對象各自負責本身的數據持久化邏輯和相關的業務邏輯

 

Domain Model模式

  • 在領域模型中,每一個對象都承擔了一部分的邏輯
  • 領域模型中的沒有業務類都是對現實世界中業務概念的抽象,它不單單包含業務活動中的數據,還包含了業務規則
  • 把領域概念轉換爲業務類的過程叫「領域建模」,建模的結果就是獲得業務模型。
  • 與活動記錄模式區別:領域模型的業務實體對如何持久化本身的數據一無所知,而且業務類也沒有必要和數據模型一一對應。

 

 Anemic Domain Model模式與實戰

  • 貧血型領域模型將與自身相關的業務處理邏輯所有轉移到模型以外
  • 缺點是領域服務類中的代碼更加結構化了

 

 業務層經常使用的設計模式

工廠方法模式

工廠方法(Factory Method)模式:定義一個建立對象的接口,但由子類來決定要實例化的類是哪一個。主要目的就是隱藏對象的建立。架構

在工廠方法模式中體現了DIP依賴倒置原則。設計

 

裝飾者模式

 裝飾者模式體現了一個很重要的設計思想:優先採用組合。而不是繼承。對象

模板方法模式

  • 模板方法模式定義了一個操做算法的骨架,而將一些步驟延遲到了子類。模板方法模式使得子類能夠在不改變算法結構的狀況下,從新定義算法中的某些步驟。
  • 最直觀的理解就是「模板」:包括變化和不變得兩個部分,將變化的部分給子類實現。
  • 模板方法中有定義「鉤子」。鉤子是一種被聲明在抽象類中的方法。

狀態模式

狀態模式容許對象在內部狀態改變時改變它的行爲,對象看起來好像修改了它的類。blog

策略模式

  • 策略模式定義了一系列算法,並將它們分別封裝了起來,讓它們之間能夠相互替換。
  • 此模式讓算法的變化獨立於使用算法的客戶

 

 業務層經常使用的企業架構模式

層超類型模式

層超類型(layer Super),讓某個類型充當一層全部類型的超類。繼承

層超類型模式的思想極爲簡單:經過繼承達到重用的目的。接口

相關文章
相關標籤/搜索