【发布时间】:2015-01-05 00:14:44
【问题描述】:
我在想,在 UML 的类图中,您创建一个类并指定其属性,您只需定义该类的所有属性,这些属性可以/应该在班级。 当我尝试使用视觉范例对我的 (python-) 代码进行逆向工程时,每个属性都显示在生成的类中(那些在构造函数中声明的和在类的其他方法中声明的)。
我想,这是视觉范式的错误。
有人可以告诉我,如果我的假设有误,或者 VP 代码生成器是否错误。提前致谢。
【问题讨论】:
-
类属性列表和传递给类构造函数的参数列表是完全独立的概念。例如,如果程序员没有另外说明,某些语言(C++、TypeScript、...)会自动假定带有 0 个参数的空隐式构造函数。另见uml-diagrams.org/class-diagrams-overview.html。这是你要问的吗?
-
谢谢,我仍在阅读该链接。但我并不是指传递给类构造函数的参数。我的意思是我在构造函数方法中创建“我自己”的属性。我想,我只将这些写在 uml 中的一个类的属性隔间中。还是隔间还必须包含我可能在类的不同方法中创建的类的每个属性。
-
将您的 python 代码添加到问题和 VP 生成的类图的屏幕截图中,以更具体地说明您的问题。该类将使用/拥有的所有属性(无论它们何时出现在运行时)都应该在属性隔间中。 UML 类图应该表示类结构的静态不可变视图。这是你要问的吗?
-
谢谢你,xmojmr。我认为,您的最后一条评论正是我正在寻找的答案。您可以将其发布为答案(从第二句话开始)。
-
事后看来,这是一个愚蠢的问题。在那一刻,我不知何故没有看到,每个“变量”都是一个类的对象,即使它是原始数据类型之一。所以它们必须像其他组合或类聚合一样对待。