8得票1回答
价值对象可以有行为吗?

我有两个值对象Money和ExchangeRatio。我想使用ExchangeRatio将一个Money转换为另一个Money。在Value Object ExchangeRatio上建立一个转换行为是否可行: ExchangeRatio.Convert(Money)返回Money。 或者...

42得票5回答
CQRS 中的值对象 - 何时使用

假设我们采用CQRS架构,其中包括命令(Commands)、领域模型(Domain Model)、领域事件(Domain Events)和读取模型数据传输对象(Read Model DTOs)。当然,在我们的领域模型中,我们可以使用值对象(Value Objects),但我的问题是,它们是否也...

15得票2回答
实体框架核心:无法更新具有嵌套值对象的实体

我有一个实体,它有一个值对象,这个值对象又有另一个值对象。我的问题是,在更新实体以及其值对象时,具有父值对象的实体得到更新,但子值对象没有被更新。请注意,我使用了Entity Framework Core的最新版本2.1.0-rc1-final。这是父实体Employee:public cla...

8得票1回答
Entity Framework Core 2.1 - 拥有的类型和嵌套值对象

我正在学习DDD,我目前正在跟随的教程是使用NHibernate实现的,但由于我的经验不足,我决定使用EF Core 2.1完成课程。 然而,我目前有些困惑:我有三个类 Customer 是一个实体和两个值对象(CustomerStatus和其中的值对象ExpirationDate)- 就像...

13得票3回答
带有数据库ID的值对象和实体在DDD类设计中的困境

这是一个很长的问题,我将直接进入主题。下面是伪代码,更好地说明了问题。 数据库结构 用户(UserID,Name,LastName) 地址(AddressID,UserID,Street,City,State,ZipCode)=>与用户之间存在多对一关系 电话(PhoneID,User...

11得票2回答
DDD - 值对象 vs 实体对象

我是DDD的新手,正在努力理解一些概念。在您的领域中,如何确定哪些对象是实体对象和哪些对象是值对象,并且它们之间的处理方式有什么不同?

16得票3回答
在领域驱动设计(DDD)中,价值对象的实际优势是什么?

我理解,实体对象具有ID而值对象没有,但在最常见的例子中,你会发现人员实体与地址值对象相关联。相对于将地址属性保留在人员实体中,创建单独的地址对象有何优势呢?

64得票13回答
暴露不可变对象的状态是否可以?

最近我接触到了不可变对象的概念,我想知道控制状态访问的最佳实践。尽管面向对象的那部分大脑让我想在看到公共成员时退缩,但我认为像这样的东西没有技术问题:public class Foo { public final int x; public final int y; ...

9得票3回答
DDD:在聚合内实例化值对象还是将其作为参数传递?

创建聚合时,应该在聚合内部创建值对象,还是应该将已经创建的值对象传递给构造函数或工厂? public Booking(DateTime arrivalDate, DateTime departureDate) { this.ArrivalAndDepartureinforma...

14得票3回答
DDD:在控制器中使用值对象?

当您从控制器中以字符串格式收到UI的参数时,您是直接将字符串传递给应用程序服务(或命令)吗? 还是,您会在控制器内部从这些字符串创建值对象?new Command(new SomeId("id"), Weight.create("80 kg"), new Date()) 或者new Comm...