9

UML アクティビティ図を使用してアプリケーションをモデル化しようとしています。私は JavaScript と Node.js と多くの非同期コールバックを使用しています。これが私が思いついたものです:

活動図

どう思いますか?何が起こっているか分かりますか?「ジェネリック コネクタ」を使用してコールバックをアクション (「run MyClass.myMethod」) に関連付け、フォーク ノードを使用して「並列」実行を表示しています。アクティビティ図のどこにもコールバックについて書かれた言葉は見つかりませんでした。ウェブまたは私の本。

編集 これは、図の JavaScript コードになります。

var MyClass = function () {
    //constructor
};
MyClass.prototype = {
    myMethod : function(cb) {
        //this is an async method
        var result = 5 + 5;
        setTimeout(function () {
            cb(null, result);
        },100); //execute Callback after 100ms
    }
};

//instanciate a MyClass Object
var myClassInstance = new MyClass();

//create a callback function that prints the result
var callbackFunction = function (err,result) {
    console.log(result);
};

myClassInstance.myMethod(callbackFunction);
console.log('I am first');
4

2 に答える 2

6

コールバックを表示する正しい方法は次のとおりです:⁺

オブジェクトをインスタンス化し、それをターゲット ポートに渡し、指定された操作 ( calculateTime) を呼び出します。制御フローはすぐに続行され、非同期操作が終了すると、結果が結果ピンに転送されます。アクションにオブジェクト (入力) ピンを追加することで、非同期呼び出しの引数を指定できます。

非同期コールバック アクティビティ図

⁺ (UML 仕様 11-08-06 11.3.10 CallOperationAction/ 11.3.8 CallAction を参照)

于 2012-10-07T13:45:10.707 に答える
3

アクティビティ図でコールバックを表示する最良の方法は、シグナルです。シグナルが完全に非同期であること (送信者と受信者の間の完全な切り離し) を考慮してください。しかし、それらはあなたが望むものにより近い意味を持っています.

于 2012-07-11T15:14:37.430 に答える