如何在UML類圖中表示C#屬性(setter和getter訪問器)?在UML類圖中表示C#訪問器屬性?
你只是把它寫成普通的setter和getter方法嗎?
或者還有其他方式表示它嗎?
我對如何在UML類圖的類和接口中表示訪問器感興趣。
如何在UML類圖中表示C#屬性(setter和getter訪問器)?在UML類圖中表示C#訪問器屬性?
你只是把它寫成普通的setter和getter方法嗎?
或者還有其他方式表示它嗎?
我對如何在UML類圖的類和接口中表示訪問器感興趣。
一些開發商/分析師:
(1)顯示性能是一個非常概念性的東西,並且只顯示每個屬性一行。 (2)其他更具體,並顯示3行,屬性,「getter」函數,「setter」函數。
(3)有時,只顯示2,爲accesors。
(4)一些U.M.L.繪製應用。允許您選擇先前的哪一項,是否要顯示。
而且......
......據我調查了,所有的選擇是正確的。記住,刻板印象( 「< <一些東西> >」,被允許幫助文檔類
(注:我用點代替空格)
(1)只有普通財產(C#,非常概念化):
+================================================================+ |..........................MyClass...............................| +----------------------------------------------------------------+ |..[+]..|..void....|..MyClass()...|..<<constructor>>.............| |..[+]..|..void....|..~MyClass()..|..<<destructor>>..............| +================================================================+ |..[+]..|..string..|..Text........|..<<property>>................| +================================================================+
(2)只有 「accesors」(C++,Java和風格):
+================================================================+ |..........................MyClass...............................| +----------------------------------------------------------------+ |..[+]..|..void....|..MyClass()...|..<<constructor>>.............| |..[+]..|..void....|..~MyClass()..|..<<destructor>>..............| +================================================================+ |..[#]..|..string..|..FText.......|..<<field>>...................| +================================================================+ |..[+]..|..string..|..getText()...|..<<function>>,..<<getter>>...| +----------------------------------------------------------------+ |..[+]..|..string..|..setText()...|..<<procedure>>,..<<setter>>..| +================================================================+
(2)對一切g(Very Programmer,Object Pascal/Delphi style):
+================================================================+ |..........................MyClass...............................| +----------------------------------------------------------------+ |..[+]..|..void....|..MyClass()...|..<<constructor>>.............| |..[+]..|..void....|..~MyClass()..|..<<destructor>>..............| +================================================================+ |..[#]..|..string..|..FText.......|..<<field>>...................| +================================================================+ |..[+]..|..string..|..Text........|..<<property>>................| +----------------------------------------------------------------+ |..[+]..|..string..|..getText()...|..<<function>>,..<<getter>>...| +----------------------------------------------------------------+ |..[+]..|..string..|..setText()...|..<<procedure>>,..<<setter>>..| +================================================================+
您是否向分析師提供? 您的C++/Java程序員是否知道如果圖表只顯示屬性,他們必須對acccesors進行編碼,或者您的公司需要在圖表中明確聲明它們?
選擇一個更適合您的需求。 (刪除點)。
很好的答案。我想這取決於誰將閱讀文檔以及他們期望的內容。如果你不知道他們期待的是什麼,我想我不得不與(2)一起去,儘管它看起來有點冗長。 – leeand00 2011-03-25 18:35:19
我不認爲你真的需要擔心如何在UML圖表中表示語言特定的約定。畢竟,這是一個實施問題,而不是設計問題。我建議用你在任何其他的UML圖中表示你的訪問器方法,然後在你到達項目中的那個點時計算出你的設計的實現,而不是提前一分鐘。
對不起,我意識到這不是對你的問題的直接回答,但它仍然是一個好的做法。
如果您從現有代碼生成圖表會怎麼樣? – 2011-03-25 12:55:45
@Martinho:理論上,你的假設對我的答案沒有影響。仍然可以將getXXX和setXXX方法寫入UML。然而,在實踐中,我懷疑許多系統架構師會創建公共財產來代表它們。 – 2011-03-25 12:59:03
不要將訪問器轉換成類似於: public string get_MyProp(){return foo; } public void set_myProp(string value){foo = value; }? – MattC 2011-03-25 13:28:59
它應該被設置爲屬性。如果它只有一個吸氣劑,請將其設置爲只讀。沒有針對C#屬性的特定UML。
對。沒有具體的U.M.L.適用於任何語言。它達到每個軟。開發。部。如何實施概念性的U.M.L.將類圖插入特定的程序中。郎。我不是C#允許的「只讀」屬性的粉絲,而是使用受保護的字段,公共readAttribute函數,並修改其他部分代碼中的字段。 – umlcat 2011-03-26 17:54:02
它似乎開始好像對這個問題不是一個好的答案,就像它太客觀或者是某種東西。 – leeand00 2011-03-25 14:46:44