這一部分主要介紹如何實現下訂單的業務,下訂單的業務主要涉及到salesorder,orderitem,customerinfo與productinfo幾個領域物件
publicpartial
class
productinfo:valueobject
}
publicpartial
class
customerinfo:valueobject
}
publicpartial
class
orderitem:entity
}
publicpartial
class
salesorder:aggreateroot
public
void createorder(listproducts,customer customer,listamounts,
string state,string city,string
street)
irepository.create(salesorder);
}
}
在下訂單時,因為會涉及到多個聚合根的協作,所以在ddd.domain中引入乙個領域服務salesorderservice來進行協調,比如訂單項新增成功後,產品的庫存
也要相應減少。
publicclass
salesorderservice
public
void createsalesorder(list productnames,listamounts,
string customername,string state,string city,string
street)
var customer = new
customer(irepositorycustomer).getcustomerbyname(customername);
var salesorder = new
salesorder(irepositorysalesorder);
salesorder.createorder(listproduct, customer, amounts, state, city, street);
}}
publicclass
}
領域驅動設計之我見 領域業務
談到領域驅動設計 ddd 人們很容易想到如下這張圖,那麼是不是你的軟體做了如下的分層設計就是領域驅動設計的了?顯然不是,以下分層只能說明的軟體做了分層架構,領域驅動設計的核心在領域模型,領域模型的核心在業務知識。如果能夠採用物件導向思維將業務抽象為恰當的模型,不管用什麼架構都稱得上領域驅動設計。在大...
領域驅動設計案例 Tiny Library 簡介
應廣大的要求,我最近抽空基於asp.net mvc wcf entity framework做了乙個案例,該案例以圖書館圖書管理 讀者借書 還書為業務背景,以領域驅動設計為思想指導,全程採用microsoft技術進行實踐,希望能夠給microsoft技術的狂熱者以及領域驅動設計的學者提供實踐參考。本...
領域驅動設計案例之領域層實體與聚合根實現
在領域層中,可以實現實體與聚合根的業務邏輯,在實現業務邏輯之前,我們首先要確定實體和聚合根的一些基本行為,比如判斷實體是否相等。關於領域物件的具體業務邏輯實現,因為涉及到要與資料庫互動,所以等看完倉儲的實現後,再實現領域物件的業務邏輯。using system using order.domain....