这是对关联的合法使用吗?
Posted
技术标签:
【中文标题】这是对关联的合法使用吗?【英文标题】:Is this a legitimate use of association? 【发布时间】:2021-04-26 19:27:24 【问题描述】:我有一个传感器类,它有一个名称、位置、数据数组。我想在它和一个小部件之间建立关联关系(一系列以数字作为输入的打印语句,例如,“按 1 清除传感器”、“按 4 对传感器的值进行排序”)。我想将这两者之间的关系称为“Widget MODIFIES sensor”。
在设置传感器的情况下,我是否可以有一个关联类来记录小部件调用传感器设置的时间、调用它的小部件和有问题的传感器?
【问题讨论】:
【参考方案1】:在 UML 类图中,您可以使用基本关联来表示这种关系。如果关联的多重性是多对多的(即许多小部件可以修改一个传感器并且每个小部件可以修改许多传感器),那么您可以使用关联类来打破它,这将是一个放置信息的合乎逻辑的地方作为您建议的时间戳。理论上,您不需要在此关联类上指定成员来记录“调用”传感器的小部件,因为这已经隐含在关联中。
【讨论】:
【参考方案2】:当然,如果Widget
和Sensor
是关联的,您可以有一个关联类来指定特定于每个关联实例(“链接”)的属性。
但是,您的叙述表明可能存在多种含义不同的替代方案。例如:
在您的情况下,如果您想将小部件与要控制的传感器连接起来,但还想拥有更改的历史记录,您可能需要两个不同的关联,每个关联都有不同的目的:controls
和 @987654326 @。
【讨论】:
以上是关于这是对关联的合法使用吗?的主要内容,如果未能解决你的问题,请参考以下文章