如何在UML类图中表示C#属性(setter和getter访问器)?
你只是把它写成常规的setter和getter方法吗?
还是有其他方式代表它吗?
我对如何在UML类图中的类和接口中表示访问器感兴趣。
答案 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。