gpt4 book ai didi

UML 关联和依赖

转载 作者:行者123 更新时间:2023-12-04 16:29:52 27 4
gpt4 key购买 nike

关联和依赖有什么区别?你能给出代码示例吗?
A类和B类是什么关系?

class A
{
B *b;

void f ()
{
b = new B ();
b->f();
delete b;
}
}

最佳答案

简短的回答是:没有严格定义在 UML 中应该如何表示任何特定的源语言构造。这将是所讨论语言的标准化 UML 配置文件的一部分,但遗憾的是,这些文件很少而且相距甚远。长答案如下。

在你的例子中,恐怕我不得不说“都不是”,只是为了困难。 A有一个 B 类型的成员变量,所以这个关系实际上是一个聚合或者一个组合……或者一个有向关联。在 UML 中,与命名目标角色的定向关联在语义上等同于具有相应名称的属性。

enter image description here

根据经验,如果 b 是聚合在 A 中初始化的构造函数;如果它也在 B 中被破坏,它就是一个组合的析构函数(共享生命周期)。如果两者都不适用,则它是属性/定向关联。

b不是 A 中的成员变量,以及局部变量 b没有被操作(没有调用它的方法),那么我会将其表示为依赖项:A需求B ,但它没有该类型的属性。

但是f()实际上调用了 B 中定义的方法.这对我来说是正确的关系 <<use>> ,这是一种更特殊的依赖形式。

最后,(无向)关联是两个类之间最弱的链接形式,因此我在描述源结构时倾向于不使用它们。当我这样做时,我通常在没有直接的源代码关系时使用它们,但是这两个类仍然有某种关联。这方面的一个例子可能是这样一种情况,即两者负责同一较大算法的不同部分,但第三类同时使用它们。

关于UML 关联和依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7718035/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com