擁有這樣的Create方法是否正確?還是應該在服務內創建用戶。這會破壞DDD概念嗎?在這種情況下,最佳做法是什么?注意:我也使用DI。 public class User : HistoryBase, IAggregateRoot { private IEnumerable<Role> _roles = new List<Role>(); public string Name { get; protected set; } public string Lastname { get; protected set; } public string Email { get; protected set; } public string Password { get; protected set; } public string EmployeeNumber { get; protected set; } public bool Active { get; protected set; } public int SiteID { get; protected set; } public IEnumerable<Role> Roles { get { return _roles; } } public static User Create(string name, string lastname, string email, string password, string employeeNumber, Site site) { var user = new User() { Name = name, Lastname = lastname, Email = email, Password = password, EmployeeNumber = employeeNumber, SiteID = site.ID }; return user; } }
3 回答

一只甜甜圈
TA貢獻1836條經驗 獲得超5個贊
我會選擇更清楚地說明您正在做什么的事情,而不是Create。您好像正在網站上注冊員工。試著用措辭,好像將要使用該系統的人會說。
如果他們說“嘿,您將創建此用戶”。然后,您的方法就可以了。
如果他們說:“嘿,您可以在我們的網站上注冊此員工嗎?” 然后,您應該使用:
public static Employee RegisterOnWebsite(string name, string lastname, string email, string password, string employeeNumber, Site site)
{
// Creation Code
}
由于您擁有員工編號作為財產??磥泶擞脩魧⒂肋h是雇員。您應該對此有所清楚,并以此命名?,F在,您的方法將顯示為Employee.RegisterOnWebsite(...)。
- 3 回答
- 0 關注
- 210 瀏覽
添加回答
舉報
0/150
提交
取消