DDD領域驅動之乾貨 (一)

說道DDD不得不說傳統的架構與DDD的架構區別。數據庫

傳統的架構不外乎就是三層,而在這三層裏面又不斷的細分,始終沒有達到想要的效果,那麼爲何當時仍是採用三層。架構

固然在DDD沒有提出的時候三層是大多數人的選擇。學習

那麼當領域驅動被提出來的時候它又能帶給咱們什麼樣的好處??spa

 近期博主看了一下dax.net大佬有關DDD的文章,這裏提出本身的一些心得,本着共同窗習的精神一塊兒進步。.net

 
  我也來講說領域模型

 

 

 

   1.爲何叫領域模型?設計

    首先傳統的模型(這裏指的只具有getter 和 setter)不包含其餘業務邏輯泛指沒有具體的功能這種模型咱們稱爲失血(貧血)模式。對象

    而後纔是具有有業務的模型除了getter 和setter 外還有其餘的業務邏輯包含在裏面,好比說我有一個購物車,購物車內有5件商品,每件商品價值20元,那麼在銷售訂單的時候能夠這樣寫總價=5*20。固然這個例子有點牽強,意會意會就好了。blog

    2.下面咱們看看代碼是如何設計。接口

    首先咱們有個user、address、saleorder、salelines、Categorization、Category、Product、userrole、ShoppingCart、ShoppingCartItem幾個類圖片

    以下圖。

           

    其中聲明IEntity領域實體接口、IAggregateRoot聚合根集合、AggregateRoot聚合根接口的抽象類。

    

    這裏不得不提到聚合個概覽。

    引用一下圖片:

    快速理解聚合根、實體、值對象

      生成的數據庫模型以下圖:

    

相關文章
相關標籤/搜索