在UML类图中表示C#访问器属性?

时间:2011-03-25 12:46:12

标签: c# properties uml accessor

如何在UML类图中表示C#属性(setter和getter访问器)?

你只是把它写成常规的setter和getter方法吗?

还是有其他方式代表它吗?

我对如何在UML类图中的类和接口中表示访问器感兴趣。

3 个答案:

答案 0 :(得分:3)

一些开发人员/分析师:

(1)将属性显示为一个非常概念性的东西,并且每个属性只显示一行。

(2)其他,更具体,并显示3行,属性,“getter”函数,“setter”函数。

(3)有时,只显示2,对于加法者。

(4)一些U.M.L.绘制应用程序允许您选择要显示的先前哪个。

而且......

......据我调查,所有选项都是正确的。请记住,这些刻板印象(“<<< some stuff>>”)可以帮助记录该课程。

(注意:我用点替换空格)

(1)只有普通属性(C#,非常概念化):

+================================================================+
|..........................MyClass...............................|
+----------------------------------------------------------------+
|..[+]..|..void....|..MyClass()...|..<<constructor>>.............|
|..[+]..|..void....|..~MyClass()..|..<<destructor>>..............|
+================================================================+
|..[+]..|..string..|..Text........|..<<property>>................|
+================================================================+

(2)只有“加速器”,(C ++,Java,风格):

+================================================================+
|..........................MyClass...............................|
+----------------------------------------------------------------+
|..[+]..|..void....|..MyClass()...|..<<constructor>>.............|
|..[+]..|..void....|..~MyClass()..|..<<destructor>>..............|
+================================================================+
|..[#]..|..string..|..FText.......|..<<field>>...................|
+================================================================+
|..[+]..|..string..|..getText()...|..<<function>>,..<<getter>>...|
+----------------------------------------------------------------+
|..[+]..|..string..|..setText()...|..<<procedure>>,..<<setter>>..|
+================================================================+

(2)Everything(Very Programmer,Object Pascal / Delphi风格):

+================================================================+
|..........................MyClass...............................|
+----------------------------------------------------------------+
|..[+]..|..void....|..MyClass()...|..<<constructor>>.............|
|..[+]..|..void....|..~MyClass()..|..<<destructor>>..............|
+================================================================+
|..[#]..|..string..|..FText.......|..<<field>>...................|
+================================================================+
|..[+]..|..string..|..Text........|..<<property>>................|
+----------------------------------------------------------------+
|..[+]..|..string..|..getText()...|..<<function>>,..<<getter>>...|
+----------------------------------------------------------------+
|..[+]..|..string..|..setText()...|..<<procedure>>,..<<setter>>..|
+================================================================+

您是否向分析师提供服务? 您的C ++ / Java程序员是否知道如果图表只显示属性,他们必须对收件人进行编码,或者您的公司需要明确地在图表中声明它们?

选择更符合您需求的产品。 (删除点)。

答案 1 :(得分:1)

我认为你真的不必担心如何在UML图中表示特定于语言的约定。毕竟,这是一个实施问题,而不是设计问题。我建议像在任何其他UML图中一样表示你的访问器方法,然后在你到达项目中的那一点时计算出你的设计的实现,而不是一分钟。

对不起,我知道这不是你问题的直接答案,但它仍然是一种很好的做法。

答案 2 :(得分:0)

应将其设置为属性。如果它只有一个吸气剂,请将其设置为只读。 C#属性没有特定的UML。