2014-10-09 137 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