2012-08-22 69 views
0

我目前使用我非传统的UML技能来记录一些代码。目前,我正在模拟一个让UML感到困惑的函数。UML建模C#操作

简而言之,该函数分别创建一个Action, and this动作runs a statemachine in either blocking or non-blocking fashion (i.e. calls either调用or BeginInvoke。

例如:

public void MyFunc() 
{ 
    bool dummy_blocking; 

    Action my_action = new Action(() => { 
     RunSomeStateMachine(); 
    }); 

    if(dummy_blocking) 
     my_action.BeginInvoke(null, null); 
    else 
     my_action.Invoke(); 
} 

你只使用一个新建信息创建一个Action,然后在该Action的生命线电话(自己)RunSomeStateMachine?接下来,你会使用alt片段在Action上拨打BeginInvokeInvokeAction周围的细节是真正阻碍我的。

编辑 - 这是我第一次尝试的例子:

enter image description here

+0

一个很好的图表会使这个更清晰..http://www.websequencediagrams.com/ – MimiEAM

+0

是的,我知道我应该这样做最初...我只是上传图表。 :) – Dave

+0

哦,现在我明白了为什么我这么困惑,你是过度详述了一个函数调用......我不认为这是必要的,除非个人使用跟上你的代码的内部工作,在生产中没有太多的用处 - 文档 – MimiEAM

回答

0

就个人而言,我不会在详细记录代码。恕我直言,如果有人想完全知道一种方法在做什么,他可以只读这种方法。

文档更有趣的是更高的上下文以及软件的各个部分如何一起玩。谁触发了这个状态机,它究竟做了什么?行动和这样的东西只是实施细节。

+0

够公平的!我会用这个观点来看看它会产生什么。 – Dave