在领域驱动设计中,我们介绍了价值对象(ValueObject)的概念,其中对象不带有身份标识。 Microsoft在其微服务系列中提供了他们的ValueObject实现,他们重写Equals()方法,以便将具有相同值的两个ValueObject视为相同。 我包含了他们的实现代码,但我的问题...
我正在开发一个需要一些复式记账的应用程序。目前有两个端点。 /account /transaction 虽然/account处理账户的一般数据,/transaction处理存款/取款的交易。账户余额是基于相关交易计算的。我将它们分开以在从一个帐户转移价值时保持记账的一致性。 我的问题是...
创建聚合时,应该在聚合内部创建值对象,还是应该将已经创建的值对象传递给构造函数或工厂? public Booking(DateTime arrivalDate, DateTime departureDate) { this.ArrivalAndDepartureinforma...
我读过很多关于C#值对象的例子,我理解它是一个由其值标识的“对象”。如果值更改,则对象为“新”。 然而,当涉及到PHP时,这似乎并不合理...或者说我没有建立联系。 一个值对象只是一个字符串吗?
我正试图理解如何将一些技术结合起来。 好的实践是永远不要让创建无效的ValueObject成为可能。因此,只有在提供的内容足够好以创建有效的ValueObject时,ValueObject构造函数才会成功。在我所拥有的示例中,只有在存在值时才能创建EmailAddress对象。到目前为止,一...
#1. 验证表单上的电子邮件地址 我有一个后端表单类,其中有一个 emailAddress 属性,具有验证逻辑,以便我可以向用户返回错误消息。我对所有表单输入进行验证,例如: $form->fillWith($request->input()); if($form->v...
通过查看Zend Quickstart教程中域对象的示例以及考虑DAO / VO模式的其他示例,它们似乎非常相似。 我们可以得出这样的结论,即说“值对象”与说“域对象”是相同的吗? 如果不是,请解释它们之间的区别。 其中一个的功能是什么,另一个的功能是什么? 我之所以问这个问题,是因为...
我有两个值对象Money和ExchangeRatio。我想使用ExchangeRatio将一个Money转换为另一个Money。在Value Object ExchangeRatio上建立一个转换行为是否可行: ExchangeRatio.Convert(Money)返回Money。 或者...
最近我一直在学习领域驱动设计,必须说这种架构设计方式在我身上产生了很大的触动。当我试图将其概念应用到我的Go项目中时,遇到了一些障碍。以下是一些示例方法,但我非常不确定应该选择哪种方法。 项目结构摘录: ├── api/ ├── cmd/ ├── internal/ | ├── bas...
我希望将Address建模为值对象,并使其不可变。为了实现这一目标,我选择不提供任何 setter 方法,以免后续修改。 通常的做法是将数据传递给构造函数;但是,如果值对象非常大,那么这种方法可能会变得非常臃肿: class Address { public function __...