12

OMG 2.5(ベータ版)によって推進されているUML仕様を通じて、次の概念を読んだとき:

in: パラメータ値が呼び出し元によって渡されることを示します。

inout: パラメータ値が呼び出し元によって渡され、呼び出し元に戻されることを示します。

out: パラメータ値が呼び出し元に渡されることを示します。

return: パラメーター値が戻り値として呼び出し元に渡されることを示します。

これは、「in」が値による呼び出しであり、「inout」が参照による呼び出しであることを意味しますか?

これらの概念のそれぞれを少し明確にしていただけますか?

4

5 に答える 5

3

参照による呼び出しは、inoutandの可能な実装の1つoutです。

UMLは、言語に依存しない方法で動作を記述していることを忘れないでください。これが何を意味するかを決定するのは、実際の言語での特定のインターフェースの実装次第です。

Adaのような言語では、言語レベル、、、inおよびoutパラメーターをin out使用して、これを言語で直接表現でき、コンパイラーは、参照またはコピーがより適切な実装であるかどうかを判断できます。すべてのパラメーターが参照(一種)によって渡されるPythonのような言語では、UMLレベルでのこの意図の表記は、実装レベルでの区別にはなりません。また、Cのような言語では、明示的なポインター型とすべてのパラメーターが値で渡されるため、UMLで表現されるこれらのインテントは、明示的なアドレス参照とポインター逆参照に変わります。

言い換えれば、短い答えは「はい、それは大まかにそれが意味することですが、それがすることではないかもしれませんです。

于 2013-02-10T16:01:13.667 に答える
0

UML について覚えておくべき重要なことは、UML はユニバーサルになるように設計されており、実装プラットフォームに依存しないことを意図しているということです。具体的には、プラットフォームに依存しないモデルである PIM です。したがって、「値による」や「参照による」などのプラットフォーム固有の実装セマンティクスを使用するのは誤りです。

現在、これらのドメイン固有のセマンティクスを実際に定義することは、プロジェクト アーキテクトの 1 つの仕事であり、多くの場合、言及したセマンティクスは有効ですが、常にそうとは限りません。

モデル駆動型アーキテクチャ (MDA)プラットフォーム プロファイル=プラットフォーム固有の設計

于 2013-02-11T13:41:06.103 に答える
0

公式の UML 仕様 を見ると、わずかな変更が見つかります。

in: パラメータ値が呼び出し元によって渡されることを示します。

inout: パラメータ値が呼び出し元によって渡され、(場合によっては異なる)値が呼び出し元に渡されることを示します。

out: パラメータ値が呼び出し元に渡されることを示します。

return: パラメーター値が戻り値として呼び出し元に渡されることを示します。

また、注意が含まれています。戻りパラメーターとしてマークできるパラメーターは 1 つだけです。

この ParameterDirectionKind 列挙に関するこれ以上の定義/説明は見つかりませんでした。

つまり、UML はこれをこれ以上指定したくありません。そして、最も確実なのは、それらのいずれも参照渡しまたは値渡しとして指定していないことです。

于 2018-03-25T11:34:06.520 に答える