gpt4 book ai didi

domain-driven-design - 领域层如何使用外部值对象库

转载 作者:行者123 更新时间:2023-12-02 22:02:50 26 4
gpt4 key购买 nike

我想要一个或多个可重用类库,这些类基本上是值对象,例如 Address、PhoneNumber、EmailAdress,主要包含属性和一些支持方法。我的领域层如何在不违反领域层不应包含外部引用的规则,并且不将它们定义为领域层中的接口(interface)/抽象类的情况下使用这些?

最佳答案

... without breaking the rule that the Domain Layer should not contain external references

我认为您对“外部引用”的定义需要重新评估。很难想象一个不引用任何东西的领域层。在 C# 和 Java 中,您将至少引用基本的数字类型、日期和字符串。我也没有看到引用像 Noda/Joda time 这样的外部库有什么坏处。另一方面,您当然不想引用任何繁重的技术库,例如持久性、通信、UI 等。

所以我想说您可以构建自己的从域引用的可重用库,但这需要非常仔细的考虑,并且通常不值得它创建的耦合。我会对每种类型使用以下标准:

  • 应该与上下文无关。例如,EmailAddress 相对独立于使用它的上下文。另一方面,根据限界上下文,地址可能具有不同的含义。
  • 应该是稳定的(不经常改变)。
  • 不应隐藏任何进程外通信(数据库、网络等)
  • 自身不应有任何依赖项(标准 Java/C# 除外)

关于domain-driven-design - 领域层如何使用外部值对象库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16597215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com