2
我正在開發使用DDD模式的應用程序。將領域層和表示層之間共享的DDD中的業務邏輯放在哪裏?
我在域層有Invoice
類。
public class Invoice
{
List<InvoiceLine> list = new List<InvoiceLine>();
public DateTime Date { get; set; }
public Customer Customer { get; set; }
public decimal GrandTotal
{
get
{
// Simplified grand total.
// It's actually include tax and discount to calculate.
decimal total = 0m;
foreach(InvoiceLine line in Lines)
total += line.LineTotal;
return total;
}
}
public IEnumerable<InvoiceLine> Lines
{
get { return list; }
}
public void AddLine(InvoiceLine line)
{
lines.Add(line);
}
}
我使用mvvm模式,所以我也有一個viewmodel編輯發票。我的問題是我應該在哪裏放置業務邏輯來計算GrandTotal,以便域和演示文稿上的業務邏輯是相同的?
我應該只複製代碼從域到演示文稿(Invoice
到InvoiceViewModel
)?或者提供域名和演示文稿都可以使用的服務?
這是一個很好的解決方案。謝謝! – 2013-02-26 15:21:17