JPA - 如何避免紧密耦合和冗余?

时间:2014-04-02 08:32:09

标签: java oop jpa tightly-coupled-code

(现在还在研究OO原则,以便更好地理解OOP。)

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

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

(我会说使用JPA你会得到免费的紧耦合。当然不是那么好。)

A B C 有一个字段'nr'。这些字段一起形成由点划分的id。这样的事情:####。####。####

现在我想问 A 来构建这个号码。根据OO原则,这样做的正确方法是什么?在我看来, C 不应该知道 B B 而不是 A

1 个答案:

答案 0 :(得分:0)

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

根据您对象的真实含义,如果您愿意,可以选择 A 创建这些内容的责任,但正如您所指出的那样 - 不应该由来完成B C

class A {
  ID newID(B b, C c) {
    return new ID(this, b, c);
  }
}