2012-08-22 65 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