0

(仍然不时学习 OO 原则以更好地理解 OOP。)

三个 (JPA) 实体具有以下 has-a 关系:

A有一个B的集合,B一个指向A的字段“a” (双向关系)B有一个C的集合,C一个指向 B 的字段“b”(双向关系)

(我想说通过使用 JPA,您可以免费获得紧密耦合。这当然不是很好。)

ABC有一个字段'nr'。这些字段一起形成一个由点划分的 id。像这样的东西:####.####.####

现在我想请A建立那个数字。遵循 OO 原则的正确方法是什么?在我看来, C不应该对BB不了解A

4

1 回答 1

0

我会说这是一个带有构造函数ID(A a, B b, C c)的新类ID

根据您的对象的实际含义,如果您愿意,可能适合让A负责创建这些对象,但显然 - 正如您所指出的那样 - 它不应该由BC来完成。

IE

class A {
  ID newID(B b, C c) {
    return new ID(this, b, c);
  }
}
于 2014-04-02T08:52:34.017 回答