【发布时间】:2011-03-28 15:43:37
【问题描述】:
如何在 UML 类图中表示 C# 属性(setter 和 getter 访问器)?
你只是把它写成常规的 setter 和 getter 方法吗?
或者还有其他的表示方式吗?
我对访问器如何在 UML 类图中的类和接口中表示感兴趣。
【问题讨论】:
-
开始看起来这不是这个问题的好答案,好像它太客观了。
标签: c# properties uml accessor
如何在 UML 类图中表示 C# 属性(setter 和 getter 访问器)?
你只是把它写成常规的 setter 和 getter 方法吗?
或者还有其他的表示方式吗?
我对访问器如何在 UML 类图中的类和接口中表示感兴趣。
【问题讨论】:
标签: c# properties uml accessor
一些开发人员/分析师:
(1) 将属性显示为一个非常概念化的东西,并且每个属性只显示一行。
(2) 其他,更具体,显示3行,属性,“getter”函数,“setter”函数。
(3) 有时,只显示 2,用于访问者。
(4) 一些 U.M.L.绘图应用程序。允许您选择要显示的先前的哪一个。
还有……
...据我调查,所有选项都是正确的。请记住,刻板印象(“>”,可以帮助记录类。
(注意:我用点代替空格)
(1) 只有普通属性(C#,非常概念化):
+================================================== ================+ |………………我的班级………… .........| +-------------------------------------------------- ---------------+ |..[+]..|..void....|..MyClass()...|..>....| |..[+]..|..void....|..~MyClass()..|..>........| +================================================== ================+ |..[+]..|..字符串..|..文本........|..>................ | +================================================== ================+(2) 仅“访问器”,(C++、Java、样式):
+================================================== ================+ |………………我的班级………… .........| +-------------------------------------------------- ---------------+ |..[+]..|..void....|..MyClass()...|..>....| |..[+]..|..void....|..~MyClass()..|..>........| +================================================== ================+ |..[#]..|..string..|..FText........|..>........ ..| +================================================== ================+ |..[+]..|..string..|..getText()...|..>,..>...| +-------------------------------------------------- ---------------+ |..[+]..|..string..|..setText()...|..>,..>..| +================================================== ================+(2) 一切(非常程序员,Object Pascal / Delphi 风格):
+================================================== ================+ |………………我的班级………… .........| +-------------------------------------------------- ---------------+ |..[+]..|..void....|..MyClass()...|..>....| |..[+]..|..void....|..~MyClass()..|..>........| +================================================== ================+ |..[#]..|..string..|..FText........|..>........ ..| +================================================== ================+ |..[+]..|..字符串..|..文本........|..>................ | +-------------------------------------------------- ---------------+ |..[+]..|..string..|..getText()...|..>,..>...| +-------------------------------------------------- ---------------+ |..[+]..|..string..|..setText()...|..>,..>..| +================================================== ================+您是否正在向分析师交付产品? 您的 C++/Java 程序员是否知道,如果图表仅显示属性,他们必须对 acccesors 进行编码,或者您的公司需要在图表中明确声明它们?
选择更适合您需求的那一款。 (删除点)。
【讨论】:
我认为您真的不需要担心如何在 UML 图中表示特定于语言的约定。毕竟,这是一个实现问题,而不是设计问题。我建议您像在任何其他 UML 图中一样表示您的访问器方法,然后在您到达项目中的那个点时制定您的设计的实现,而不是提前一分钟。
抱歉,我知道这并不是对您问题的直接回答,但它仍然是一种很好的做法。
【讨论】:
它应该被设置为一个属性。如果它只有一个 getter,请将其设置为只读。 C# 属性没有特定的 UML。
【讨论】: