9得票1回答
这个 `ValueObject` 实现中的 `EqualOperator()` 和 `NotEqualOperator()` 方法是如何工作的?(Microsoft Docs)

在领域驱动设计中,我们介绍了价值对象(ValueObject)的概念,其中对象不带有身份标识。 Microsoft在其微服务系列中提供了他们的ValueObject实现,他们重写Equals()方法,以便将具有相同值的两个ValueObject视为相同。 我包含了他们的实现代码,但我的问题...

9得票2回答
在REST API中聚合数值

我正在开发一个需要一些复式记账的应用程序。目前有两个端点。 /account /transaction 虽然/account处理账户的一般数据,/transaction处理存款/取款的交易。账户余额是基于相关交易计算的。我将它们分开以在从一个帐户转移价值时保持记账的一致性。 我的问题是...

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

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

9得票2回答
PHP中一个值对象的例子是什么?

我读过很多关于C#值对象的例子,我理解它是一个由其值标识的“对象”。如果值更改,则对象为“新”。 然而,当涉及到PHP时,这似乎并不合理...或者说我没有建立联系。 一个值对象只是一个字符串吗?

9得票3回答
如何在值对象中使用可重用的验证。

我正试图理解如何将一些技术结合起来。 好的实践是永远不要让创建无效的ValueObject成为可能。因此,只有在提供的内容足够好以创建有效的ValueObject时,ValueObject构造函数才会成功。在我所拥有的示例中,只有在存在值时才能创建EmailAddress对象。到目前为止,一...

8得票1回答
领域驱动设计中如何在表单和值对象之间共享验证?

#1. 验证表单上的电子邮件地址 我有一个后端表单类,其中有一个 emailAddress 属性,具有验证逻辑,以便我可以向用户返回错误消息。我对所有表单输入进行验证,例如: $form->fillWith($request->input()); if($form->v...

8得票3回答
领域对象和值对象-它们是否相等?

通过查看Zend Quickstart教程中域对象的示例以及考虑DAO / VO模式的其他示例,它们似乎非常相似。 我们可以得出这样的结论,即说“值对象”与说“域对象”是相同的吗? 如果不是,请解释它们之间的区别。 其中一个的功能是什么,另一个的功能是什么? 我之所以问这个问题,是因为...

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

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

8得票1回答
Golang 和 DDD 领域建模

最近我一直在学习领域驱动设计,必须说这种架构设计方式在我身上产生了很大的触动。当我试图将其概念应用到我的Go项目中时,遇到了一些障碍。以下是一些示例方法,但我非常不确定应该选择哪种方法。 项目结构摘录: ├── api/ ├── cmd/ ├── internal/ | ├── bas...

8得票3回答
DDD: 如何保持复杂值对象的不可变性?

我希望将Address建模为值对象,并使其不可变。为了实现这一目标,我选择不提供任何 setter 方法,以免后续修改。 通常的做法是将数据传递给构造函数;但是,如果值对象非常大,那么这种方法可能会变得非常臃肿: class Address { public function __...