亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

DDD聚合根是否具有創建對象的靜態方法是正確的

DDD聚合根是否具有創建對象的靜態方法是正確的

C#
慕少森 2021-04-08 18:15:13
擁有這樣的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(...)。


查看完整回答
反對 回復 2021-04-10
  • 3 回答
  • 0 關注
  • 210 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號