这是一个序列图如何提问,而不是HowTo代码。
我正在使用Visio 2010并开发>>从Microsoft Dynamics AX 2012 / X ++进行逆向工程。是的,人们都知道如何在UML上映射静态。
我的类在其void static main()中使用FORM实例化。这会调用另一个静态方法,比如construct(),它返回同一个类的实例。
我想分别显示类(在静态方法中)和结果对象,如元类运行(self msgs),最后生成最终接管的类对象。但是自我msg调用将如何返回值?如何将其与类的结果对象连接?我希望我有足够的理智让你们明白。
注意,该类不是静态类,但它有一个静态构造函数。
答案 0 :(得分:0)
如果要描述对构造函数的调用(即负责创建对象的静态操作并且(通常)将其作为回复返回),则必须使用createMessage构造,即带有空心箭头的虚线和单词create
就可以了。虽然在规范中没有直接说明,但通常在这种情况下,箭头指向生命线框(矩形)而不是线本身(但我已经看到两种符号都正确的信息)。
请注意,在这种情况下,构造函数的逻辑是隐藏的(封装的),这通常是一个好主意。 您可以在第17.4节中的UML规范中找到更多详细信息,尤其是17.4.4.1,以及第17.14节中的第17.6.5节中的示例。
如果你想使用构造函数以外的静态操作并在不使用类实例的情况下调用它,则必须将类建模为对象(在所有类 之后)至少在分析级别上对象本身)。请注意,根据您的需要,消息类型可以是同步消息也可以是异步消息。
使用这种方法,您可以提供有关类如何处理此功能的详细信息(即它所做的其他调用)。
有关详细信息,请参阅&#34;应用UML和模式&#34;作者:Craig Larman,第15.4节,图15.20。但请注意,Larman建议使用<<metaclass>>
刻板印象。然而,被调用的对象是一个类(元类是一个类,其实例是类,所以这是不是我们的情况)所以构造型应该是<<class>>
。