我有一個Customer
業務實體在Domain
項目中,我想根據它的屬性在DomainService
項目中實例化它。業務邏輯在創建時需要執行,例如, Salary
取決於FirstName
(僅限示例)。我不希望它的制定者公開丟失封裝。實例化業務實體不失封裝
如何實例化/初始化它而不會丟失封裝。二傳手的私人可以改變,而不是公開的。
public class Customer
{
public int Id { get; private set; }
public string Firstname { get; private set; }
public string Surname { get; private set; }
public decimal Salary { get; private set; }
//... other properties
}
您可能會發現在設計實體有趣的這篇博客文章:http://www.jefclaes.be/2013/04/designing-entities-immutability-first.html – JefClaes