UML Object 图:Parent 或 Child
UML Object Diagram: Parent or Child
假设我有以下 class :
public class ParentClass{}
它的 children class 之一是:
public class ChildClass extends ParentClass{}
让我们考虑另一个 class :
public class Foo{
private ParentClass field;
public Foo(){
field = new ChildClass();
}
public static void main(String[] args){
Foo foo = new Foo();
}
}
画foo
的Object图的时候不知道要不要写ChildClass
:
或ParentClass
:
在你的程序中 field 是 ChildClass 的实例,对象图的目的是显示实例及其有效类型 (以及它们的属性值(如果有的话)=> 正确使用的图表是
[从评论中编辑我的回答]
使用第二张图也是合法的,但是那张图隐藏了实例 肯定是 ChildClass 的实例这一事实, 所以最好用第一张图来表示。
我忘了在你的两个图表中提到两个实例之间的 line 不对应于它们之间的单独关联,第一个图表的正确方法是:
考虑到您的 Foo 实例是通过名为 foo 的变量保存的,命名 foo[= 似乎是合理的36=] 你的 Foo
实例
假设我有以下 class :
public class ParentClass{}
它的 children class 之一是:
public class ChildClass extends ParentClass{}
让我们考虑另一个 class :
public class Foo{
private ParentClass field;
public Foo(){
field = new ChildClass();
}
public static void main(String[] args){
Foo foo = new Foo();
}
}
画foo
的Object图的时候不知道要不要写ChildClass
:
或ParentClass
:
在你的程序中 field 是 ChildClass 的实例,对象图的目的是显示实例及其有效类型 (以及它们的属性值(如果有的话)=> 正确使用的图表是
[从评论中编辑我的回答]
使用第二张图也是合法的,但是那张图隐藏了实例 肯定是 ChildClass 的实例这一事实, 所以最好用第一张图来表示。
我忘了在你的两个图表中提到两个实例之间的 line 不对应于它们之间的单独关联,第一个图表的正确方法是:
考虑到您的 Foo 实例是通过名为 foo 的变量保存的,命名 foo[= 似乎是合理的36=] 你的 Foo
实例