2014-10-09 228 views
1

我正在为我的项目编写一个类图,但不确定是否应该在图上包含我重写的ToString()方法?C#UML类图

另外,如何在图上表示重写的方法?

例如...

public override String SalesPrice() 
+0

这是用于学校项目吗?如果不是 - 只需从您的IDE中为您的文档自动生成图表,不要手动执行此操作(反正不会使用)。如果是 - 询问你的老师他是否希望将重写的方法包括进去,并遵循他的约定。 – 2014-10-09 22:47:41

+0

我没有意识到你可以这样做,谢谢指出,我会查找它,但是,好吧,我只是尝试使用UML图练习,你知道我将如何表示图上重写的方法?感谢您的回复 – Tom 2014-10-09 22:51:46

+0

[uml 2.0](http://www.amazon.com/UML-2-0-Nutshell-In-OReilly/dp/0596007957)::不知道如果它是旧的或任何,但我拥有它,它是相当不错的。 – RadioSpace 2014-10-09 23:17:23

回答

1

好了,我终于找到了这本书,我提到(我很快就运动得都爆满)。

in UML继承被称为泛化,它只是显示2个指向其他无属性的框。

我会假设,既然你已经定义了基类中的方法,你不必在从它继承的类中。

然而存在,指出操作定义的地方为:

能见度名称(参数):返回型 {属性}”

和属性:

属性

指定任何与参数相关的属性,并在大括号之间指定。这些通常是一个特定的模式”

的上下文中定义虽然性能比实际的方法似乎更多的参数,但你可以现在做傻事这一点

的接口:

在接口部分,它明确指出,“实现”接口的类必须有它自己的实现,所以简而言之,我会向类图中添加任何重写的方法,否则谁实现你的图可能没有意识到他们需要重写它

我正在使用uml 2.0 in a nut shell作为我的参考。皮克的20,28,30

+0

谢谢你回到我身上,所以对于属性部分到底是不是我要指定它是一个重写的方法? – Tom 2014-10-12 20:26:55

+0

好吧,你可以。我不会说这违反规则,但也许会弯曲它们。我相信这部分是针对操作的参数。但我觉得在这方面标记一种被重写的方法是非常可读的。 – RadioSpace 2014-10-12 20:32:28

+0

好的,谢谢你,我现在就这样做,然后再问我的一位导师下周有关它,再次感谢 – Tom 2014-10-12 20:34:37

1

通常你不会真的需要包括UML类图的方法“已覆盖”或“虚拟”等任何额外的细节,

但是,如果你希望做所以,有人告诉我,它应该以同样的方式为抽象类(斜体书面方式)/用“箭”两侧,像这样的..

<<Override>> 
<<Virtual>> 

以符合了你的例子来表示:

+ SalesPrice(): <<Override>> : String 

并且在您的超类中,您需要指定如下:

+ SalesPrice(): <Virtual>> : String