【问题标题】:DDD: Always create ValueObject even with all fields nullDDD:即使所有字段都为空,也始终创建 ValueObject
【发布时间】:2021-10-20 11:41:43
【问题描述】:

场景

我的域不需要城市和街道字段。

我有一个值对象

public class Address : ValueObject
{
     public string City { get; private set; }

     public string Street { get; private set; }

     public Address(string city, string street)
     {
        City = city;
        Street = street;
     }
}

我有一个使用 ValueObject 的 Root 实体

public class MyRoot : RootEntity
{
     public string Name { get; private set; }
 
     public Address Address { get; private set; }

     public MyRoot(string name, Address address)
     {
          Name = name;
          Address = address;  // TODO Create with null fields if address is null ?
     }
}

问题

  1. 如果传递 null new Address(null,null),我应该创建地址值对象吗?
  2. 一般来说,有一些用于创建 ValueObject 的最佳做法(始终、在请求时等)?

【问题讨论】:

    标签: c# domain-driven-design value-objects


    【解决方案1】:

    如果传递 null 新的,我应该创建地址值对象吗? 地址(null,null)?

    不,如果根对象没有要存储的地址,您只需将根对象的 Address 属性设置为 null。

    您的代码没有问题。

    【讨论】:

      猜你喜欢
      • 2021-10-18
      • 2020-09-23
      • 2020-01-23
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 1970-01-01
      相关资源
      最近更新 更多