繁体   English   中英

UML构造型应用于类继承设计模式

[英]UML Stereotypes applied to Class Inheritance design pattern

使用Papyrus (+ Eclipse)时,我遇到了一个最初被视为不一致的问题。 但是,在对它感到好奇之后,我开始认为我可能在UML设计的基本概念中遇到了一个“错误”

好吧,考虑ManWomanPerson专业的基本类继承问题。 (换句话说, PersonManWoman的超类)。

然后,如果将Person构造型) Worker (例如,包含参数jobsalaryStereotype Worker )应用于Person ,子类是否也应该接收相同的构造型Worker 它们不应该包含jobsalary参数吗?

虽然确实我也从超类继承了构造型,但是当我在Papyrus工具中实现此设计时,我看不到任何继承的jobsalary 每个子类就像没有任何已应用的构造型一样。

提前致谢!

======================编辑以获取更多信息=========================

我发现,关于子类中构造型的继承,UML v1.3在2000年出现了一个问题。

问题3210:原型的继承(uml-rtf)

在我的解释中,“ 讨论”中提供的示例正是我上面所要求的。 但是,似乎审阅者理解问题是在寻求构造型的子类型,而不是约束从构造型类传播到其子类。

这是添加到UML v1.3的要点:

刻板印象是GeneralizableElements。 如果构造型是另一个构造型的子类型,则它从构造型超型继承所有约束和标记值,并且它必须应用于相同类型的基类。 构造型会跟踪可能将其应用到的基类。

后来,它在UML v1.4中被弃用,在UML 2中被删除。

因此,基本上,根据我的解释,这个问题确实存在……但是UML规范仍然没有指定它。

我也认为构造型是继承的,但是在这一点上,我在Web或UML标准中找不到对此的任何引用。 但是根据您的描述,您可能应该使用多重继承或接口。

构造型用于扩展类-为class元素而不是实例提供更多属性。 UML中的类具有名称,属性(字段)和方法。 当您向类添加构造型时,实际上是在向类添加另一组属性。 例如,如果您正在编写一个MVC(模型-视图-控制器)系统,并且想要使用构造型来指定哪些类是视图,哪些是模型以及哪些控制器,这将是一个很好的答案,因为您正在描述一个属性类,而不是特定实例。 这似乎不是您的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM