Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UML类图:这是如何编写抽象方法和属性的?_C#_Design Patterns_Uml_Class Design - Fatal编程技术网

C# UML类图:这是如何编写抽象方法和属性的?

C# UML类图:这是如何编写抽象方法和属性的?,c#,design-patterns,uml,class-design,C#,Design Patterns,Uml,Class Design,当我第一次为一个小型C#项目创建uml类图时,我在属性方面遇到了一些问题。最后,我只是在开头添加了属性作为变量。现在我想知道如何用抽象的方法解决这个问题?我是否应该在方法中添加罚款?我在做这样的事情: ----------------------------------- | <<abstract>> | | MyClass | -----------------------------

当我第一次为一个小型C#项目创建uml类图时,我在属性方面遇到了一些问题。最后,我只是在开头添加了属性作为变量
。现在我想知道如何用抽象的方法解决这个问题?我是否应该在方法中添加
罚款?我在做这样的事情:

-----------------------------------
|           <<abstract>>          |
|             MyClass             |
-----------------------------------
|<<property>> + a : int           |
|<<property>> + b : string        |
-----------------------------------
|<<abstract>> # Job() : void      |
|<<abstract>> # Job2() : string   |
|- SomeNonAbstractMethod() : void |
-----------------------------------
-----------------------------------
|                     |
|我的班级|
-----------------------------------
|+a:int|
|+b:字符串|
-----------------------------------
|#作业():无效|
|#Job2():字符串|
|-SomeNonAbstractMethod():void|
-----------------------------------

这样行吗?有什么建议吗?

因为UML中没有属性,我认为这是一个可能的解决方案,可以强调属性应该作为属性实现。但是,您应该在使用图表的文档中记录此非标准关键字的用法

另一个解决方案是创建一个约定,即所有公共属性都必须作为属性实现(除非出现某些异常…)

如果我没记错的话,抽象方法是用斜体文本显示的。但我不喜欢这种方法,因为它可能比您的图表更容易监督。这也可能取决于您的UML编辑器提供的可能性,我通常更喜欢调整编辑器的方法,以与使用同一编辑器绘制的其他图表保持一致。

每个“属性”实际上都是UML2中的属性。抽象方法以斜体文本显示(UML对此有一个布尔值)


您使用的符号称为关键字(简单方式)或原型(更复杂)。如果您想将一个属性标记为某种“特殊”属性,可以像您那样使用关键字。

如果您使用UMLet创建UML类,您可以简单地将类放在两个正斜杠之间:

希望这有助于任何人谁找到这篇文章,并正在寻找一种方法来做它的UMLet