VO 可以调用 API 吗?

问题描述 投票:0回答:1

在我正在构建的应用程序的注册部分中,我需要应用一个逻辑,规定电子邮件在数据库中必须是唯一的。由于我正在构建前端,因此我想知道是否可以创建一个 VO(值对象)来执行 API 调用来检查电子邮件是否唯一。这个想法非常简单,我将一个电子邮件字符串传递给一个类,并且在构造函数中,如果 API 说电子邮件已在使用中,我将引发错误。这里的重点是我不知道 VO 是否应该像那样进行 API 调用;虽然我知道它确实执行验证。

此外,如有必要,我可以在单独的类中执行对 API 的调用:服务,但我仍然需要在 VO 内调用。

typescript domain-driven-design value-objects
1个回答
0
投票

很多人发现在构造函数中工作是一个坏主意。例如,请参阅 Misko Hevery 的这篇文章。

将值对象的实现与 I/O 紧密耦合是一个不寻常的选择;采用值对象模式的通常原因是您在某些本地数据结构中拥有信息,并且您希望组织查询该结构的方法。

添加 I/O 问题很奇怪。

拥有一个接受某些表单数据和 API 响应的工厂方法/命名构造函数可能是合理的,它可以生成“唯一”值或执行其他操作。

© www.soinside.com 2019 - 2024. All rights reserved.