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

问题描述 投票:9回答:2

当我第一次为一个小的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
2个回答
6
投票

每一个 "属性 "在UML2中实际上是一个Property。抽象方法用斜体文字显示(UML有一个布尔值)。

你使用的符号被称为 Keyword (简单的方式) 或 Stereotype (更复杂)。如果你想把一个属性标记为某种 "特殊",那就像你做的那样用关键字就可以了。


0
投票

由于UML中没有属性,我认为这是一个可能的解决方案,以强调一个属性应该被实现为属性。然而你应该在你使用图的文档中记录这个非标准关键字的用法。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.