gpt4 book ai didi

java - 模型对象是否应该灵活

转载 作者:行者123 更新时间:2023-11-30 07:36:16 25 4
gpt4 key购买 nike

[抱歉,工作是专有的,所以我不能提供对象的详细信息]

我正在与同事一起开发 Java 应用程序。我在做客户端,他在写服务端代码。

应用程序显示 X 对象的表格。表格的列显示了 X 的一些属性。此外,我们有一列显示每个 X 的 Y 计数。(关联是 Y 到 X 的多对一关联,并且 Y 有一个对其父 X 的引用)。

Y 的计数不是 X 的属性,而是通过对 DB 的查询获得的。

我正在使用 TableModel,因此使用 X 对象作为表格模型显然会更容易。但是由于 Y 计数不是 X 的属性,我需要创建一个容器对象来保存 X 加上计数。这很烦人,因为它添加了一个看似不必要的类。

我建议我的同事给 X 添加一个额外的字段加上一个 getter:

private void Map info = new HashMap();

这将使模型对象 X 更加灵活。我可以随时在客户端中存储我需要的任何状态,而不会影响特定于 X 性质的模型的主要属性。 key 只会在客户端中定义,因此模型不会被污染。

他拒绝了,因为他觉得模型对象应该只对领域建模,额外的字段与领域对象无关,所以不应该添加。他认为客户应该处理这个问题。

这两种观点似乎都有其优点,所以我很想知道其他读者对此有何看法/感受。

谢谢,

蒂姆

最佳答案

我认为您将数据库模型与 MVC 中的模型混淆了。请记住,MVC 模式是表示层的设计模式。模型,即 MVC 中的模型可以是简单应用程序中的数据库模型(数据库中的实体),但这不是必需的。

我认为您应该像您所说的那样有一个单独的类(表模型),它应该包含您在表中显示的字段。该模型将从您的业务逻辑层填充,即应该是您的 BLL 的输出。您也可以将其称为 DTO(数据传输对象)。这个想法是只拥有你需要的数据。如果您需要计数,则只在 DTO 中计数而不是所有 Y。这不仅会使您的应用程序易于管理,而且还会减少层之间的数据传输,从而减少应用程序的内存占用并增加性能也是如此。

关于java - 模型对象是否应该灵活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3707392/

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