【问题标题】:Prodived/Required Interface vs. Generalization in Class Diagram (UML 2.0)类图中提供/必需的接口与泛化 (UML 2.0)
【发布时间】:2018-06-10 17:17:27
【问题描述】:

我为安全警报系统建模。

我创建了一个名为“Sensors”的父类及其两个名为“WindowSensor”和“DoorSensor”的子类。

在类图中,我是否必须将它们与 Provided/Required Interface ORGeneralization(分类关系)相关联?

【问题讨论】:

  • 当你说“孩子”是什么意思? WindowSensor 和 DoorSensor 继承自 Sensor ?您使用什么编程语言?你能发布你的代码和/或你的第一个模式吗?因为你可以做到这两个:创建一个泛化关系并为每个类创建提供的接口,或者只是一个泛化并且只有父类提供了接口(最后一个选择通常是好的)
  • Java 是的,我的意思是继承关系! (编辑问题一会儿上传)

标签: class uml diagram


【解决方案1】:

所以如果WindowSensorDoorSensor 扩展Sensor 后者概括WindowSensorDoorSensor

并且根据您的需要,您可以将提供/必需的接口添加到Sensor。这些接口将被WindowSensorDoorSensor 继承。

您可以根据需要向WindowSensorDoorSensor 添加更多提供/必需的接口。值得注意的是,这些应该不同于那些已经从Sensor继承的。

【讨论】:

  • 你最后一句话的措辞有点晦涩。我认为重新应用已经继承的相同接口只是多余的。但它也有错吗?我的意思是,是否有禁止这样做的约束?
  • 我不确定是否理解,子类提供/需要与其父类相同的接口。因此,要要求/提供相同的接口,必须改变什么?
  • 如果你不介意我会编辑你的答案,你可以重做/改进它。
  • @Kilian 事实上我的回答是正确的,无论你是否改进......如果这是改进,我很高兴得到改进。
  • 基本上只是一个改写 ;-)
【解决方案2】:

提供的接口和必需的接口主要用于在 UML 组件图中对组件的接口进行建模。 see reference

类图与组件图
类和组件(以及类图和组件图)之间存在巨大差异。它是关于Level of Detail & Scope,最简单的想法是一个组件是多个类。借助组件,您可以管理大型系统复杂性

只有 3 个类:Sensor 类、DoorSensorWindowSensor。您不需要任何组件图和任何提供的接口或必需的接口。

提到细节的最简单的解决方案是类之间的泛化

【讨论】:

  • 好吧,prov./req。接口也可以应用于类。它相当于一个<<interface>> 的实现。另见第171 个规格。
  • 您的观点不是很清楚,因为提供和必需的接口在第 10 节关于行为分类器和从行为分类器继承的类中定义。见图。 10.10
  • @ThomasKilian,你说得对,但在这种情况下,没有必要使用它们
  • 问题中没有任何接口。这个问题只有 3 个类。并尝试为它们建模。
  • @granier 你们都是对的。建模事物的方法总是不止一种。只是 YMMV。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
相关资源
最近更新 更多