java - UML关系类型: Variables & Parameters & Cloning

标签 java class dependencies uml aggregation

在 UML 图中,这些场景之间的关系是什么?

1. Take 2 classes, class A and class B. There are methods in Class A such as: public function (ArrayList<B>) public function2 (): ArrayList<B>

2. Take 2 classes, class A and class B. There are methods in Class A such as: public function (ArrayList<B>) public function2 (B)

3. Take 1 class, class A. There are methods in Class A to clone itself by using details of the parent, such as: public clone (): A public A (A parent) Is there a relationship line in the UML to itself?

4. Take 2 classes, class C and class D. Class D is an aggregate of class C (C has D). Class D however has a clone function in the same way as Q3 above. Does this mean Class D is not composed of class C?

5. Take 2 classes, class A and class B. There is a method in Class A which have variables that create ArrayList<B>.

我对每种情况的想法(但我非常不确定)

  1. A 类使用 B 类(依赖)[尽管我在这和关联之间犹豫不决]

  2. A 类使用 B 类(依赖)

  3. 是的,A类使用A类(依赖)

  4. 不,D类仍然由C类组成

  5. A 类具有 B 类(聚合)

我的理解完全错误吗?这些场景中正确的关系是什么?

感谢您的回答

最佳答案

Take 2 classes, class A and class B. There are methods in Class A such as: public function (ArrayList) public function2 (): ArrayList
class A uses class B (dependency) [although I'm tossing up between this and association]

如果 ArrayList 由 B 的实例组成,则它是依赖项 A-->B。如果 A 中有类型 B 的数据成员,那么它将是一个关联(以其变体之一)。

不同之处在于,依赖关系更通用,并且描述了两者之间的弱连接,通常是短时间的连接(就像这里,A 中类型 B 的方法参数)。关联意味着更强大、更持久的关系,通过代码级别的数据成员来表达。

Take 2 classes, class A and class B. There are methods in Class A such as: public function (ArrayList) public function2 (B)
class A uses class B (dependency)

和之前的情况一样,这里很清楚B是一个方法参数。

Take 1 class, class A. There are methods in Class A to clone itself by using details of the parent, such as: public clone (): A

public A (A parent) Is there a relationship line in the UML to itself? Yes, class A uses class A (dependency)

如果类 A 在其数组中具有类 A 的数据成员,则它是与其自身的循环关联。如果不是,则无需放置依赖项 A-->A。无论如何,A 取决于自身,因此它是多余的。

Take 2 classes, class C and class D. Class D is an aggregate of class C (C has D). Class D however has a clone function in the same way as Q3 above. Does this mean Class D is not composed of class C? No, Class D is still composed of Class C

是的。

Take 2 classes, class A and class B. There is a method in Class A which have variables that create ArrayList.
class A has class B (aggregation)

不,除非 A 中也有 B 的数据成员,否则这只是另一种依赖情况,因为链接是暂时的且短暂的(在方法执行期间)

关于java - UML关系类型: Variables & Parameters & Cloning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23580276/

相关文章:

java - 每次将软件分发给新用户时都手动为软件创建新数据库?

java - 线程 "main"org.openqa.selenium.NoSuchElementException : Unable to locate element 中的异常

java - 类无法使用来自不同包的反射访问其自己的 protected 成员变量

ruby - 如何从 Ruby 中的循环创建类的实例?

java - 接口(interface)是 Java 8 中实用程序类的有效替代品吗?

java - 一个类可以从类本身内部取消吗?

带有 optional 依赖项的 Makefile

linux - 如何创建没有外部依赖的wxWidgets应用程序?

c++ - 为内存和外部依赖管理重新组织 C++ 代码

java - 除 IMEI 或 IMSI 之外的手机唯一标识符?