標籤:
業務上主要實現產品的建立,客戶的建立、下訂單的業務,這裡主要示範領域驅動設計的思想與一些最佳實務如何體現到領域的實現中,代碼中的一些
Bug或瑕疵不用太過理會。
在DDD.Doman項目中實現相應的彙總根、實體與值對象。
這篇文章主要實現客戶的建立,因為通過Model-First已經建立了領域模型,所以我們建立部分類別來實現領域對象的商務邏輯部分。
public partial class Customer:AggreateRoot { private IRepository<Customer> irepository; public Customer(IRepository<Customer> irepository) { this.irepository = irepository; } public void CreateCustomer(string name,string mobile,string state,string city, string street) { Customer customer = new Customer(); customer.Id = base.Id; customer.Name = name; customer.Mobile = mobile; addcustomeraddress(customer, state, city, street); irepository.Create(customer); } private void addcustomeraddress(Customer customer,string state,string city,string street) { var address = new Address(state, city, street); customer.Address.Add(address); } public void AddCustomerOtherAddress(Customer customer,string state,string city, string street) { addcustomeraddress(customer, state, city, street); irepository.Update(customer); } public Customer GetCustomerByName(string name) { return irepository.GetByCondition(p => p.Name == name).FirstOrDefault(); } }
public partial class Address:ValueObject { public Address(string state,string city,string street) { this.Id = base.Id; this.State = state; this.City = city; this.Street = street; } }
領域驅動設計案例之業務實現1