【问题标题】:MongoDB and Spring Data - Is polymorphism a good idea?MongoDB 和 Spring Data - 多态性是个好主意吗?
【发布时间】:2019-11-19 03:48:56
【问题描述】:

假设我有三种类型的文档,它们的不同之处在于某些字段。假设:

  1. 对于A型:我们有field1 field2
  2. 对于 B 类:我们只有 field1 但没有 field2
  3. 对于 C 类:我们有 field3

所有其他字段都相同。使用从基类继承的三个类来表示数据是个好主意吗?

【问题讨论】:

    标签: mongodb spring-boot database-design spring-data spring-data-mongodb


    【解决方案1】:

    提醒一下:

    继承有两个方面:code reusing and overriding.
    第一个解决了重复问题(看起来像您的想法),而第二个定义了相同概念的不同行为实现。
    当然,在某些情况下,您可能会受益于双方。

    关于你的问题:

    使用三个类来表示数据是个好主意吗 从基类继承?

    如果 A、B 和 C 被设计为保存数据(因此内部没有逻辑/行为)分解基类中的公共字段(即除字段 1、字段 2 和字段 3 之外的所有字段)说得通。它会让你免于重复,而重复是一种难闻的气味。
    另一方面,如果 A、B 和 C 也有逻辑,则只有当这些类代表相同的一般概念时,才应引入基类。否则,您的抽象是错误的,并且可能导致我们尝试统一(通过基类)操作实际上是不同概念的事物的混乱用法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-02
      • 2011-01-05
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多