gpt4 book ai didi

inheritance - UML 中的构造型和类继承有什么区别?

转载 作者:行者123 更新时间:2023-12-03 11:58:51 25 4
gpt4 key购买 nike

我对 UML 中的“刻板印象”和“父类(super class)”之间的区别感到困惑。

假设我想创建一个包含“WidgetMaker”的图表。 WidgetMaker显然是 Actor所以 UML 标准是对它进行刻板印象:

<<Actor>> WidgetMaker

但我是在 Java/Ruby/C++ 世界中长大的。在那个世界里,关系是:
class Actor
end

class WidgetMaker < Actor
end

在 UML 中看起来像这样:
  Actor
^
|
WidgetMaker

所以我的问题是:当你可以使用类继承轻松地对这些概念进行建模时,为什么 UML 有原型(prototype),它也有。

一旦我们有了更多“种类”的 Actor ,问题就变得更加模糊:
              Actor
^
|
------------------------
| | |
Person Robot Group
^
|
WidgetMaker

相对
<<Actor>> <<Person>> WidgetMaker

最佳答案

据我了解,构造型的主要目的是支持 UML 本身的扩展(作为一种建模语言),而不是建模任何东西。

话虽如此,我还认为您的问题暗示了另一个可能的有效答案:有些人更喜欢使用刻板印象来指定(非正式地!)类之间的某些共性。他们可能会这样做只是因为它比子类化更容易并且对于他们的模型而言“足够好”。

例如,许多软件系统都有代表所谓领域实体(如公司、客户、采购订单、产品等)的类。最终,你 可能想要一个像 Entity 这样的普通类推导出 Company , Customer等从。但最初可能只使用像这些 <<Entity>> Company 这样的定型类就足够了。 , <<Entity>> Customer等等。本质上,这只是您建模工作的方便(和成本/ yield !)问题。

关于inheritance - UML 中的构造型和类继承有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/829904/

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