UML类图:这是如何编写抽象方法和属性的?

时间:2012-09-28 08:43:51

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

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

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

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

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:0)

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

另一个解决方案是创建一个约定,所有公共属性必须作为属性实现(除非发生一些异常......)。

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

答案 2 :(得分:0)

如果您使用 UMLet 来制作 UML 类,您可以简单地将您的类放在两个正斜杠之间: UML abstract class with an abstract method using UMLet

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