对象和创建列表但在方法中添加对象的 class 之间的 UML 关系
UML relationship between object and class that creates list, but adds objects in method
像这样:
public class create {
private List<Object> l = new ArrayList<>();
public void put() {
Object o1 = new Object();
l.add(o1);
}
}
不考虑列表,我假设它是一个依赖项。
但是现在这个class和Object是什么关系呢?
由于 List<Object> l
属性,这种情况下的关系将是一个聚合。 create
class 是 class Object
.
的集合
'Aggregate'的定义是:
a whole formed by combining several (typically disparate) elements.
在 UML 中,聚合关系定义为
an association that represents a part-whole or part-of relationship
or a
"has a" association relationship
如果 create
class 没有 l
属性,那么它将是一个依赖项。
public class create {
public void put() {
List<Object> l = new ArrayList<>();
Object o1 = new Object();
l.add(o1);
}
}
这是因为 create
class 依赖 Object
class 来实现 put()
方法。
create和Object的关系是聚合:
顶部的多重性是 *
,因为对象可以是零个或多个创建实例的一部分。
底部的多重性也是 *
因为 create class 的实例可以有零个或多个对象的列表。
这张class图隐藏了聚合关系的具体实现。也可以画一个更技术化的图,其中包含class ArrayList,但这不是你问的。
像这样:
public class create {
private List<Object> l = new ArrayList<>();
public void put() {
Object o1 = new Object();
l.add(o1);
}
}
不考虑列表,我假设它是一个依赖项。 但是现在这个class和Object是什么关系呢?
由于 List<Object> l
属性,这种情况下的关系将是一个聚合。 create
class 是 class Object
.
'Aggregate'的定义是:
a whole formed by combining several (typically disparate) elements.
在 UML 中,聚合关系定义为
an association that represents a part-whole or part-of relationship or a "has a" association relationship
如果 create
class 没有 l
属性,那么它将是一个依赖项。
public class create {
public void put() {
List<Object> l = new ArrayList<>();
Object o1 = new Object();
l.add(o1);
}
}
这是因为 create
class 依赖 Object
class 来实现 put()
方法。
create和Object的关系是聚合:
顶部的多重性是 *
,因为对象可以是零个或多个创建实例的一部分。
底部的多重性也是 *
因为 create class 的实例可以有零个或多个对象的列表。
这张class图隐藏了聚合关系的具体实现。也可以画一个更技术化的图,其中包含class ArrayList,但这不是你问的。