当前位置:  开发笔记 > 编程语言 > 正文

如何在UML中表示C#属性?

如何解决《如何在UML中表示C#属性?》经验,为你挑选了4个好方法。

不是一个属性,不是一个方法.定型?<> <>


我正在对现有系统进行逆向建模,所以我需要清楚地反映出这与readonly字段或方法对不同(不管IL说的是什么),所以我想我会选择刻板印象,但我会接受语言独立的get_set_作为一般解决方案.谢谢大家的理智测试.



1> Mike Hofer..:

我通常在Visio中准备我的UML图表(我知道,我知道;但是你要做什么?).

在绘制属性时,它们最终如此:

+------------------------+
| MyClass                |
|------------------------|
| - _foo : int           |
|------------------------|
| «property» + Foo : int |
+------------------------+

«property»是源自«operator»的自定义构造型.

丑陋,我知道.但它很有效,而且很明显.我以相同的方式构建构造函数.



2> Ray Hayes..:

属性是写作只是一种方便的方法get_MyValue()set_MyValue(value)允许转让,而不是正常的方法调用(使用括号).

您访问的实际上是一个.NET属性,C#有自己的语法来访问它们.由于在皮肤下创建了真实get_set_方法,因此您可以简单地显示这些方法(使您的UML语言独立 - 例如,使您的UML同样适用于VB.NET开发人员)

......或者如你所说,介绍你自己的刻板印象!



3> Hemanshu Bho..:

您可以使用与字段相同的方式表示属性.要指定readonly或writeonly等附加信息,您可以使用

+名称:字符串{READONLY}



4> Greg Burghar..:

我一直在属性名称旁边使用<><>构造型,因此它们看起来像字段,但允许您区分get或的访问修饰符set

+=============================+
| ClassName                   |
+-----------------------------+
| +<> Id : int           |
| -<> Id : int           |
| +<> IsSomething : bool |
+-----------------------------+
| + Method1(arg1 : string)    |
+=============================+

或者,如果您不希望出现一个以上的属性,那么这也可以工作:

+=============================+
| ClassName                   |
+-----------------------------+
| +<> -<> Id : int  |

并且为了减少混乱,如果getset具有相同的访问修饰符:

+====================================+
| ClassName                          |
+------------------------------------+
| +<> Description : string |
| +<> -<> Id : int         |

这清楚地传达了属性是具有get还是set,以及属性是否为只读(通过<>类图中不存在的属性)。所以基本上您在问题中说的是。

尽管属性是getter和setter方法的语法糖,但它们应该感觉像字段,并且我相信UML图应该反映这一事实,同时还传达什么是公共的,什么是私有的,以及setter是否存在与否。

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有