如果 class 的构造函数需要第二个对象的指针对象,那么 UML 关系是什么?
If constructor of a class requires pointer object of second object, what would be the UML relationship?
我有两个 classes A
和 B
。如果 class A
的构造函数需要指向 class B
的对象的指针,
`A(B* b)`.
在这种情况下,class A 和 B 之间的 UML 关系是什么?
编辑
更详细地说,我有以下情况:
我有三个 classes A
、B
和 C
。这里,C
继承自B
。
class A
构造函数代码如下:A(B* b)
.
class C
在其构造函数中使用代码实例化指向 A
对象的指针:
A* a = new A(this)
.
class C
的析构函数用代码 delete a
销毁 pointer a
。
这样岂不是所有的组合、依赖、泛化关系都如附图所示?
直接关系是依赖关系(由有向虚线表示):
您可以用更具体的刻板印象来装饰它,例如«使用»:
当然,如果必须在构造时提供指向 B 的指针,则无需讨论依赖关系,正如 πάντα ῥεῖ 指出的那样。
但是 类 中的指针是实现 类 之间可导航关联的一种方式。因此,如果指针由 A 保留(例如,作为成员),那么它就不仅仅是一个简单的依赖关系;这将是 类(A 和 B 之间的直线)之间的关联:
- 如果指针可以是
nullptr
则它是一个可选关联,多重性为 0..1,否则它将是一个强制关联 1
- 如果指针将被添加到一个容器成员中,而其他指针也可以被添加到该容器成员中,它将是一对多关联(多重性 0..n 或 1..n 取决于
nullptr
是否允许施工)
因为指针允许您从 A 导航到 B(但不一定从 B 到 A),您可以使用箭头将此关联显示为可导航:
我有两个 classes A
和 B
。如果 class A
的构造函数需要指向 class B
的对象的指针,
`A(B* b)`.
在这种情况下,class A 和 B 之间的 UML 关系是什么?
编辑
更详细地说,我有以下情况:
我有三个 classes A
、B
和 C
。这里,C
继承自B
。
class A
构造函数代码如下:A(B* b)
.
class C
在其构造函数中使用代码实例化指向 A
对象的指针:
A* a = new A(this)
.
class C
的析构函数用代码 delete a
销毁 pointer a
。
这样岂不是所有的组合、依赖、泛化关系都如附图所示?
直接关系是依赖关系(由有向虚线表示):
您可以用更具体的刻板印象来装饰它,例如«使用»:
当然,如果必须在构造时提供指向 B 的指针,则无需讨论依赖关系,正如 πάντα ῥεῖ 指出的那样。
但是 类 中的指针是实现 类 之间可导航关联的一种方式。因此,如果指针由 A 保留(例如,作为成员),那么它就不仅仅是一个简单的依赖关系;这将是 类(A 和 B 之间的直线)之间的关联:
- 如果指针可以是
nullptr
则它是一个可选关联,多重性为 0..1,否则它将是一个强制关联 1 - 如果指针将被添加到一个容器成员中,而其他指针也可以被添加到该容器成员中,它将是一对多关联(多重性 0..n 或 1..n 取决于
nullptr
是否允许施工) 因为指针允许您从 A 导航到 B(但不一定从 B 到 A),您可以使用箭头将此关联显示为可导航: