【问题标题】:What is a child object's association to its parent referred to as?子对象与其父对象的关联称为什么?
【发布时间】:2015-02-18 06:40:49
【问题描述】:

这是一个令人困惑的问题。假设我有一个类 Fruit,它具有字段 Color、Name 等。(简化示例)如果我有一个 Color(假设它是一个完整的类而不是原始类),是否有一个术语来表示 Color 与 Fruit 的关联“颜色”字段?用于此用途的应用程序更像是一个围绕 JSON 对象的 Java 包装器。给定 JSON 层次结构中的属性实例,我想添加一个自定义元数据字段,该字段包含它所在的父级中的字段名称。例如我希望 Color 类有一个字段,该字段填充了包含 Fruit 类中的字段名称。

这个协会有术语吗?代表这个孩子的孩子的父母的字段名称?我正在尝试命名一个变量,而“parentFieldNameForThisChild”又笨又长,我觉得它必须有一个正式的名称。

为了澄清,父对象不是我所追求的。如果 Fruit 类看起来像这样:

class Fruit {
    Color fruitColor;
    String fruitName;
}

如果我是一个 Color 对象,我想知道我包含在我的父级 Fruit 类的“fruitColor”属性中。这是我正在寻找一个术语的协会。同样,这是一个简化的示例,将应用于 JSON 包装器,其中属性名称在代码中不明确,必须从 JSON 结构中检索。

【问题讨论】:

  • 如果将Color 字段添加到Car 类型会发生什么?
  • 相同的概念。存储的值可以是在 Car 类型中命名的任何 Color 成员属性。所述关联的名称就是我所追求的(即我如何称呼这个值?)
  • 我是不是想多了?我不想只使用“fieldName”,尽管这可能是最正确的,因为它对我来说也太模糊了。 “parentFieldName”具有误导性。 “nameOfThisObjectsFieldWithinItsParent”太长了。此关联必须有正式名称。

标签: java json


【解决方案1】:

jquery 关联是简单的父级。 http://api.jquery.com/parent/ 由于其层次结构,访问很容易,并且额外的字段是多余的。专利总是只有一个,所以不需要类型定义。我的投票是“父母”。

【讨论】:

  • Parent 和我要找的不一样。在我的示例中,“父母”将是“水果”类的一个实例。我正在寻找的是一种在父类中描述子属性名称的方法。如果我有一个代表水果颜色的类,并且它存储在 Fruit 类中的“fruitColor”属性中,那么我要查找的是“fruitColor”,它是包含子对象的字段的名称,而不是父对象本身。
【解决方案2】:

您所描述的是object composition & aggregation 关系。

在您的示例中,Fruit 有一个 Color,但Color 可以单独存在(或者可以吗?) - 这真的取决于您的设计。无论如何,这种关系要么是组合,要么是聚合

您可能希望为关系指定一个通用名称,例如association-name 和另一个字段中的关联类型,例如association-type 为什么不association-cardinality

This SO threadthis one 可以帮助理解对象之间的不同关系。

您可以在Unified Modeling LanguageUML glossary 等规范语言中找到一些命名理念。

【讨论】:

  • 在查找其中一些链接时,我能找到的最合适的术语是“is-a”,它不是很准确,但有点接近。颜色“是”水果类的一种水果颜色。它更像是作为其父级的特定 Fruit 类实例的颜色“是”fruitColor。但这也是一种奇怪的表达方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-25
相关资源
最近更新 更多