【问题标题】:UML class diagram: is this how to write abstract method and property?UML类图:这是怎么写抽象方法和属性?
【发布时间】:2012-09-28 08:43:51
【问题描述】:

当我第一次为一个小型 C# 项目创建 uml 类图时,我遇到了一些属性问题。最后,我只是将属性添加为变量,开头带有<<property>>。现在我想知道如何用抽象方法解决这个问题?我应该在方法中添加<<abstract>> 罚款吗?我正在做这样的事情:

-----------------------------------
|           <<abstract>>          |
|             MyClass             |
-----------------------------------
|<<property>> + a : int           |
|<<property>> + b : string        |
-----------------------------------
|<<abstract>> # Job() : void      |
|<<abstract>> # Job2() : string   |
|- SomeNonAbstractMethod() : void |
-----------------------------------

这样好吗?有什么建议吗?

【问题讨论】:

    标签: c# design-patterns uml class-design


    【解决方案1】:

    每个“属性”实际上都是 UML2 中的一个属性。抽象方法以斜体文本显示(UML 对此有一个布尔值)。

    您使用的符号称为关键字(简单方式)或刻板印象(更复杂)。如果您想将属性标记为某种“特殊”,可以像您一样使用关键字。

    【讨论】:

      【解决方案2】:

      如果您使用 UMLet 来创建 UML 类,您可以简单地将您的类放在两个正斜杠之间:

      希望对任何发现这篇文章并正在 UMLet 上寻找方法的人有所帮助。

      【讨论】:

        【解决方案3】:

        由于 UML 中没有属性,我认为这是强调属性应作为属性实现的可能解决方案。但是,您应该在使用图表的文档中记录此非标准关键字的用法。

        另一种解决方案是创建一个约定,即所有公共属性都必须作为属性实现(除非出现一些例外情况......)。

        如果我没记错的话,抽象方法是使用斜体文本显示的。不过我不喜欢这种方法,因为它可能比你的图表更容易监督。它还可能取决于您的 UML 编辑器提供的可能性,我通常更喜欢调整编辑器的方法以与使用同一编辑器绘制的其他图表保持一致。

        【讨论】:

          猜你喜欢
          • 2021-12-17
          • 2012-11-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-22
          • 2023-03-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多