【问题标题】:Should one place a list of models inside another model?是否应该将模型列表放在另一个模型中?
【发布时间】:2019-06-07 15:03:15
【问题描述】:

是否应该在模型中放置一个容器结构?

例如,

AModel { 

   List<BModel> listB; 
} 

就 OO 而言,这是有道理的。但是在使用模型和数据库时,我会遇到问题,因为 AModel 和 BModel 有自己的表吗?例如,当我从数据库中获取 AModel 时,我只是将 listB 留空,还是为了完全检索对象,我是否还获取了与 AModel 关联的所有 BModel 对象?但是,有时我可能只想获取 AModel 而不是引用 AModel 的 BModel 列表。现在, 我正在考虑从 AModel 中删除该列表。这将更好地反映 AModel 与 BModel 具有一对多关系的数据库模式。我觉得这将是一种更优雅的方法。你怎么看?

【问题讨论】:

  • 你在使用 JPA 之类的 ORM 吗?如果是这样,它们支持链接实体的延迟加载(它看起来就像一个嵌套的集合字段)。
  • @Thilo 目前没有。我的设计并不过分复杂,我想我可以不用它来管理。在 ORM 之前他们是如何处理这个问题的?

标签: java model-view-controller design-patterns database-design design-principles


【解决方案1】:

这是可能的,但这是不好的做法,因为它使程序员无法理解代码和阅读流程,并且一旦您遇到第一个逻辑错误,就无法追踪它。 如需更有用的答案,请提供代码/更具体的问题。

【讨论】:

  • 我不认为它使阅读变得更难。实际上,就 OOP 而言,封装列表是有意义的。但是,我觉得这不是从 MVC 方法处理它的优雅方式,至少我最初是如何考虑的。我进行了更多研究,发现这样的列表实际上很常见。但是,有一些性能问题需要考虑。但我不认为这些是我现在需要处理的。感谢您的回复。
猜你喜欢
  • 2019-05-17
  • 1970-01-01
  • 1970-01-01
  • 2013-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-27
相关资源
最近更新 更多