【问题标题】:Interpreting the Difference in a UML Diagram of Three Classes in a Row versus Sharing a "Line"解释连续三个类与共享“线”的 UML 图中的差异
【发布时间】:2020-10-13 05:50:32
【问题描述】:

我想了解使用共享线路将类连接在一起或仅通过其他类“连接”类之间的区别。这里有显着差异吗?如果类共享一条线,您是否特别试图传达正在从共享线上的每个其他类访问信息?

对于“一行中的三个对象”,我的意思是如下所示的布局(抱歉,我的图表是:

对于“共享线”,我指的是如下所示的布局:

【问题讨论】:

    标签: class uml diagram


    【解决方案1】:

    访问权限的区别

    在第一种情况下,Flat 的实例和 Tenant 的实例相互认识,并且独立于 Tenant 的实例和LeaseAgreement 的实例彼此认识。 Flat 的实例不能直接访问 LeaseAgreement 的实例,而 LeaseAgreement 的实例不能直接访问 Flat,只有在 租户 以任何方式(方法或公共属性)提供这些访问权限时,他们才能访问其他实例。

    第二种情况有一个association-classFlatTenant的实例更了解LeasingContract 表明它们是如何关联的。


    知识差异

    在第一种情况下,假设隐藏的多重性不是 1,拥有两个租金的租户与 Flat 的两个实例和 LeaseAgreement 的两个实例相关联,但在给定的模型允许将 LeaseAgreement 的正确实例与 Flat 的正确实例链接起来,这意味着该模型没有说明租赁协议是针对哪个平面编写的.

    在第二种情况下没有歧义,每对实例 FlatTenant 都与(实际上抛出)LeasingContract

    【讨论】:

      【解决方案2】:

      下图中的符号称为关联类(请参阅this wiki)。基本上,它是1-* AC *-1 关系的快捷方式,其中 AC 连接两个类,因此您可以添加属性和操作。在您的示例中,AC 是Leasing contract,它将添加有关持续时间、付款等信息。两个* 取自AC 协会远端的* 左右。所以这相当于你的下图:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-15
        • 2018-05-21
        相关资源
        最近更新 更多