gpt4 book ai didi

java - 需要有关包含 100 多个字段的领域对象建模的帮助

转载 作者:行者123 更新时间:2023-12-01 19:21:58 26 4
gpt4 key购买 nike

有一个名为“Foo”的类,通常包含 100 多个字段。它是一个域对象,我必须为每个客户端自定义它,因为每个客户端的字段规范几乎完全不同(相同的字段不超过 10 个)。有些客户有超过200个字段。

目前,我必须根据每个客户端的规范更新 IDE 中“Foo”的类定义。因为我必须在业务层使用“Foo”中的这些字段来做一些计算,有时确实很容易出错,而且很耗时。

我想知道是否有人知道任何优雅的方法来做到这一点?例如,我可以将所有字段的定义(名称、类型、长度、默认值、小数位数、精度、计算公式(主要是+-*/))写在java代码之外(假设是一个xml文件),然后使用工具来生成java源代码。之后,我只需将生成的代码编译并打包为 foo-customized.jar 并将其放入我的应用程序中。

最佳答案

不生成 Java。

如果情况如此极端,请执行 XML 操作来为每个客户定义适当的数据。然后从 XML 数据构建 Field 对象。将它们放入 Foo 中的 Map 中。现在您将使用 foo.get("name"); 而不是 foo.getName()

创建一个工厂,读取适当的 XML 文件并向您返回从 XML 加载的 Foo 实例。

尝试将不同的数据放入同一个类中是非常没有乐趣的。

<小时/>

或者,创建特定于每个客户端的具体类。是的,这很乏味,但您只需要做一次。这些应该实现一个接口(interface),该接口(interface)指定业务层所需的所有方法。现在您的工厂确定哪个是合适的,实例化它,并返回接口(interface)。

现在你的业务层对客户端一无所知。这是一件好事。

现在,如果您的业务层非常依赖于客户端,那么我们可以采取更多措施来减轻痛苦......

关于java - 需要有关包含 100 多个字段的领域对象建模的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3783661/

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