当我第一次为一个小的C#项目创建UML类图时,我在属性方面遇到了一些麻烦。最后,我只是把属性添加为一个变量,用 <<property>>
在开始的时候,我想知道如何用抽象方法解决这个问题。现在我想知道如何用抽象方法解决这个问题?我是否应该只添加 <<abstract>>
对方法进行细化?我在做这样的事情。
-----------------------------------
| <<abstract>> |
| MyClass |
-----------------------------------
|<<property>> + a : int |
|<<property>> + b : string |
-----------------------------------
|<<abstract>> # Job() : void |
|<<abstract>> # Job2() : string |
|- SomeNonAbstractMethod() : void |
-----------------------------------
这样可以吗?有什么建议吗?
每一个 "属性 "在UML2中实际上是一个Property。抽象方法用斜体文字显示(UML有一个布尔值)。
你使用的符号被称为 Keyword (简单的方式) 或 Stereotype (更复杂)。如果你想把一个属性标记为某种 "特殊",那就像你做的那样用关键字就可以了。
由于UML中没有属性,我认为这是一个可能的解决方案,以强调一个属性应该被实现为属性。然而你应该在你使用图的文档中记录这个非标准关键字的用法。
另一个解决方案是创建一个约定,所有的公共属性必须作为属性来实现(除非出现一些例外......)。
如果我没有记错的话,抽象方法是通过使用斜体文本来显示的。但我不喜欢这种方法,因为它可能比你的图更容易被监督。它也可能取决于你的 UML 编辑器所提供的可能性,我通常喜欢适应编辑器的方法,以保持与其他用同一编辑器绘制的图一致。