gpt4 book ai didi

java - Java 中的领域驱动设计 - 将所有原语转换为值对象?

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

Java 中的 DDD 通常意味着将域中所有可能的原语转换为值对象吗?我今天与同事讨论了字符串(而不是强)类型的代码。我非常喜欢将所有东西都变成单独的值对象(好吧,任何不是实体的东西),但总体观点只是在结构的情况下才这样做(比如地址,街道,门牌号)等),或者当内置验证相关时(例如电话号码)。将其他东西(例如宠物名)放入单独的包装类中会不会太过分(即使使用像 Lombok 这样的框架),或者它是否具有任何乍一看不容易发现的巨大优势?

最佳答案

这不是规则,但您的代码应尽可能反射(reflect)您的业务语言。将原始值更改为可理解的商业名词是个好主意。即使您的值对象非常简单(只有一个 value 属性),当它们被显式命名时,推理它们也会容易得多。除此之外,您的对象可以(并且将会)在模型/域的知识处理过程中发生变化。很有可能,有一天您的单值对象将变成更复杂的结构,可能需要复杂的验证。当您从一开始就将值对象设计为有意义的类时,重构就会容易得多。您还可以获得静态类型验证的优势,例如您无法将宠物名称设置为街道地址(如果您仅将它们建模为简单字符串,则这是可能的)。

关于java - Java 中的领域驱动设计 - 将所有原语转换为值对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43286441/

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