拥有这样的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
}
由于您拥有员工编号作为财产。看来此用户将永远是雇员。您应该对此有所清楚,并以此命名。现在,您的方法将显示为Employee.RegisterOnWebsite(...)。
- 3 回答
- 0 关注
- 186 浏览
添加回答
举报
0/150
提交
取消