加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

UML关联和依赖

发布时间:2020-12-14 00:51:14 所属栏目:百科 来源:网络整理
导读:关联和依赖之间有什么区别?你能给出代码示例吗? A级和B级之间有什么关系? class A{ B *b; void f () { b = new B (); b-f(); delete b; }} 简短的回答是:如何在UML中表示任何特定的源语言结构并不是严格定义的.这将是所讨论语言的标准化UML配置文件的一
关联和依赖之间有什么区别?你能给出代码示例吗?
A级和B级之间有什么关系?
class A
{
    B *b;

    void f ()
    {
        b = new B ();
        b->f();
        delete b;
    }
}
简短的回答是:如何在UML中表示任何特定的源语言结构并不是严格定义的.这将是所讨论语言的标准化UML配置文件的一部分,但遗憾的是这些很少见.答案如下.

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

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

如果b不是A中的成员变量,并且局部变量b没有被操作(没有调用方法),那么我将其表示为依赖:A需要B,但它没有属性那种类型.

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读