Atitit。委任の本質 C#.net java php
Atitit.class と type、抽象化レベル class、デリゲート,インターフェイス委任の本質
1. 委任は、Java のより詳細なインターフェイス 1
2. 委任モード 1
3. 1
4. クラス と type 2
インターフェイスはクラス指向ですが、デリゲートはメソッドおよびプロパティ指向です。インターフェイスはクラスに適用する必要がありますが、委任はメソッドとプロパティに適用されます。
メソッドのパラメーターがデリゲート型の場合、匿名デリゲートの存在により呼び出しが容易になります。この時点では、メソッドは属性であり、パラメーターに直接割り当てることができます。
委任は、インターフェイスのようなクラス全体に影響を与えるのではなく、メソッドに対する「外部制約/外部コントラクト」の影響を軽減します。
委任では継承が可能です。つまり、委任には、ストラテジー モードでの委任の使用など、多様な機能があります。
MSDN では、.net の 3 つの主要な型 (タイプ) としてクラス、デリゲート、インターフェイスがリストされていますが、デリゲートはインターフェイスよりも詳細です。 Microsoft は関連文書の中で、デリゲートで実行できることはすべてインターフェイスに置き換えることができると指摘しました。
Java の用語は関数型インターフェースです (jdk8 は委任のみをサポートします)
著者:: Laowa のclaws Attilax Ailong、 EMAIL:[email protected]
転載の際は出典を明記してください: http://blog.csdn.net/attilax
は、ソフトウェア設計パターンの基本的な手法です。委任パターンでは、2 つのオブジェクトが同じリクエストの処理に参加し、リクエストを受け入れたオブジェクトがリクエストを別のオブジェクトに委任して処理します。委任パターンは基本的な手法であり、状態パターン、戦略パターン、訪問者パターンなどの他の多くのパターンは、基本的に、より特別な場合に委任パターンを使用します。委任パターンを使用すると、継承の代わりに集約を使用できるようになり、ミックスインをシミュレートすることもできます。
「デリゲート」は、C# および Java 言語の言語レベルの機能です。直接の対応はありませんが、動的プロキシを介して委任を実装できます。コードは次のとおりです: .
delegate は単なる言い方です。Java での同等の表現は call back
Jdk8 にはすでに委任の実装があります。 。関数インターフェイスは C# のデリゲートです
Class は Type のサブセットとして理解できます
Type は型自体を記述するために使用される特別なクラスです 名前、名前空間などの特性、アセンブリ、所有するプロパティ、メソッド、特性など、特定のクラス インスタンスの Type: aObject.GetType() を取得、特定の型の Type: typeof キーを取得 Words.