【问题标题】:How to draw a class's metaclass in UML?如何在 UML 中绘制一个类的元类?
【发布时间】:2009-09-27 10:22:26
【问题描述】:

如果类 A 是由其 __metaclass M 创建的,那么箭头在 UML 中的外观如何?

stereotype 语法似乎是相关的。

我还没有查看Python UML tools

【问题讨论】:

    标签: python uml metadata


    【解决方案1】:

    使用类符号加上<<metaclass>> 构造型来绘制元类。一个类和它的元类之间的关系可以通过使用构造型<<instantiate>>注解的两者之间的依赖关系(带有指向元类的箭头的虚线)来定义。

    【讨论】:

    • 元类确实会创建类,那么使用“create”关键字不是更好吗?
    【解决方案2】:

    这个答案来自UML 2.2 Superstructure Specification

    更多类答案: “例如,«create»关键字可以出现在操作名称旁边,表示它是构造函数操作,也可以用来标记两个类之间的使用依赖关系,以表示一个类创建另一个类的实例。 " (第 690 页[706-AdobeReader],附录 B,未编号的第 4 段,页面上的第 1 段)我认为这将适用于元类。

    刻板印象的答案: 这是一个答案,但不能推断“创建”是您在帖子中使用的词,但可能只是一个模棱两可的词选择。符号是带有实心三角形的法线。我还看到了在 Rational Software Modeler 等工具中使用的 <<extend>> 关键字。 (Pg 657[673-AdobeReader] 图 18.3 和 659 图 18.5,配置文件部分)

    您可能还想澄清一下,您是指 MOF/模型定义意义上的元类,还是某种语言或其他上下文中的元类。

    如果您改进了您的问题,请告诉我。

    【讨论】:

    • 请按段落编号指定您所指规范中的准确位置。我觉得页码不够用。
    • 好的,但是使用页码而不是 PDF 工具在顶部所说的内容。它们是不同的。
    • “段号”是指“18.2.3”之类的东西。
    • 我认为使用双下划线、提及 Python 并对其进行标记 Python 就足以确定上下文;)在那种语言中,类是元类的实例。
    【解决方案3】:

    我会用刻板印象“元类”来绘制依赖关系。这不是预定义的构造型,但应该让阅读者清楚这是什么类型的依赖。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      相关资源
      最近更新 更多