【发布时间】:2013-11-18 15:45:52
【问题描述】:
让我们考虑一个类 'Human' -->(1..*) 'Human' ,其中 Human 是一个超类型。假设它有“男性”、“女性”、“社会病理学男性”等子类。基本关联 b/w 2 实体仍然常见,子类型定义名称和关联的约束,但基本关系仍然是 m:n b/w 2人类实体。 示例:-
'男' -->(1:1)('老婆'(关系名)) '女'
'女'-->(1:1)('老公')'男'
-
'SociallyPathologicalMale'-->(1:0)('friends') 'Male'
[edit 13/12/2011] - 如果说我们必须在 java 中实现它,那么有哪些最佳实践可以使关联重用成为可能?
假设我们从基类开始:-
class Human{
private List<Human> relationships; // in a subclass this field, could
// this generically be represented ??
}
类似
class Man extends Human{
private List<Woman> relationships;//should be 0 or 1
}
现在,在 Man(或任何其他子类)中重新定义关系字段这一事实可以在结构上强制执行,即在定义任何子类时,我应该强制定义关系。 java中的这种构造是否可能?还有其他语言可以轻松做到这一点吗??
【问题讨论】:
标签: data-modeling object-oriented-analysis