【发布时间】:2017-03-17 00:16:28
【问题描述】:
我需要一些关于值对象的帮助。请考虑以下示例。
我有实体卡,它具有泛货币(美元、欧元、英镑)和卡类型(Visa、Visa Electron、万事达卡)。我认为货币和卡类型是价值对象,它们存储在源代码中。根据 DDD 值对象没有存储库。
- 问题是如何填写货币和卡片的下拉列表 在创建新的 Card 实体时在界面中键入。
- 将这些类放在应用程序、域或基础设施层的什么位置 以及如何从中检索数据。
一个简单的例子将是无价的”
更新1
这是我的第一种方法,但是.. 我在 MoneyTransfer 等其他实体中使用货币,我使用 EUR USD GBP 和更多货币,所以我必须再创建一个枚举
public enum MoneyTransferCurrency{
USD, EUR, GBP and a few other
}
这样我复制了一些货币,如果我们停止处理美元付款,我必须找到所有枚举并删除美元货币。
【问题讨论】:
-
什么是“停止处理美元付款”?这意味着对于您的应用程序,美元不再用于新交易,或者应该删除所有具有美元的东西?当您停止使用美元时,您存储的数据会怎样?在我看来,这比域建模更像是一个验证问题。从您的领域角度考虑。
-
表示您不能以美元订购卡,或者您不能以美元汇款。不应该删除任何内容。
-
因此 USD 作为可能值仍然存在于您的域中,您不必从枚举中删除它。
-
我必须从用户界面下拉菜单中删除它,但我不会删除购买的卡或美元转账
标签: domain-driven-design value-objects