【发布时间】:2018-10-17 08:20:18
【问题描述】:
我目前有这两个实体: 名义上的和熟悉的(家庭/亲属/亲戚)。
熟悉的 [0..*][1] 名义上的
这 2 个类具有一个人的共同属性(名字、姓氏、出生日期......),它们是 2 种 Affiliate
我想将它们统一在一个超类中(泛化)Person,但我不知道我应该让 Titular 和 Familiar 扩展 Person 或添加 Person 作为它们的属性。 p>
Person 也必须单独存在(不能是抽象的),并且不是所有 Persons 都是 Affiliates 但!我还需要一种方法来建立/处理 Titular 和 Familiar 的公共行为。
人物 [1][0..*] 名义
人 [1][0..*] 熟悉
名义上的[1][0..*]熟悉
所以怀疑是:
public class Titular extend Person
public class Familiar extend Person {
或
public class Titular implement Affiliate {
private Person person;
public class Familiar implement Affiliate {
private Titular t;
private Person person;
或(第三个想法)
public class Person {
public abstract class Affiliate {
protected Person person;
public class Titular extends Affiliate {
【问题讨论】:
-
如果对象代表人与人之间的联系,那么它们不应扩展
Person- 您的第二个解决方案看起来最好。 -
@OldCurmudgeon 如果您能花时间分享您对我的回答的看法,我会很好。
标签: java jpa hierarchy data-modeling