質問
C#でのOOPの概念「メッセージパッシング」(??? /イベントの処理/イベントを発生/パラメータを渡す/メソッドを呼び出す)の例は何ですか、なぜそれが、メッセージパッシングと呼ばれていますか?
解決
メソッド呼び出します。
これは、「関数を呼び出す」の不可欠な概念と区別するために、受信オブジェクトが何をすべきかを決定するという考えを強化するために、メッセージパッシングと呼ばれています。呼び出しサイトでは、あなただけの受信機に「メッセージ」を伝えます。
の例では、クラスの抽象的方法、およびサブクラスに実装されます。またはインターフェイスメソッドの実装。あなたは呼び出すと、例えば型GetEnumerator()
の変数を介してIEnumerable
、あなたが実際に実行する必要がありますどのようなコードの呼び出しサイトで知りません。
他のヒント
これは、パラメータを渡すからそれを区別するために、メッセージパッシングと呼ばれている。
メッセージを渡すの主な利点は、あなたがメッセージが供給メソッドのシグネチャを変更することなく、メッセージの内容を変更することができるということです。
他のいくつかの方法は、同一の情報が必要になる場合があり、それ故定義と同じ場所で変更することができることである。
そのメッセージパッシングとメソッド呼び出しが異なっている感じる人もがあります。私たちは、互換的用語を使用していますが、意味は微妙です。
スモールトークでは、メッセージパッシングは、バインドされた時間に実行された、オブジェクトは、それが明示的にメソッドとして定義されていなかったメッセージを処理できるかどうかを決定するための方法を持っていました。 Rubyはこのmethod_missingを呼び出します。特にC ++のメソッドを動的に複数のメッセージを処理する方法を追加する方法はありませんし、コンパイル時にバインドされています。あなたの周りのダイナミクスを投げ始めるとC#4.0は、ミックスを持っています。
メッセージパッシングの別の学校がありますが、Erlangのは、すべてのメッセージの引数は、状態にデカップリングする必要があると考えています。つまり、彼らは不変またはコピーのいずれかです。