これらの用語の違いは何ですか、小さな例を挙げていただけますか?
3 に答える
集約: http: //en.wikipedia.org/wiki/Aggregate_patternから
デザインパターンでは、アグリゲートはデザインパターンではなく、イテレータを作成するためのインターフェイスを提供するリスト、ベクトル、ジェネレータなどのオブジェクトを指します。
つまり、要素には、別のタイプの他の要素が0個以上含まれています。
public class MyAggregation
{
protected List<MyAggregates> aggregates = new List<MyAggregates>();
public void add( MyAggregate element )
{
aggregates.Add( element );
}
}
委任: http: //en.wikipedia.org/wiki/Delegation_patternから
ソフトウェアエンジニアリングでは、委任パターンはオブジェクト指向プログラミングのデザインパターンであり、オブジェクトは、指定されたタスクの1つを実行する代わりに、そのタスクを関連するヘルパーオブジェクトに委任します。
あるクラスが別のオブジェクトを使用して何かを行うことを意味します。
public interface IExceptionHandler
{
void handle( string filename );
}
public class FileDeleteExceptionHandler : IExceptionHandler
{
public void handle( string filename )
{
File.Remove( filename );
}
}
public class MyExceptionHandler
{
protected IExceptionHandler exceptionHandler;
public MyExceptionHandler( IExceptionHandler theHandler )
{
this.exceptionHandler = theHandler;
}
public void handleException( string filename )
{
excpetionHandler.handle( filename );
}
}
または、C#では、委任はデリゲート関数を参照するだけです。http://msdn.microsoft.com/de-de/library/900fyy8e%28VS.80%29.aspxを参照してください。
相談何もわからない、ごめんなさい
hth
マリオ
注:上記のコードは実際にはコンパイルしていません。
ここに、委任と相談の違いについての説明があります。
ほとんどの人が代表団と呼んでいるものは、より適切に協議に言及されているように思われます。
リファレンスで説明されているより正式な意味での委任は、Concreteクラスに委任するAbstract基本クラスとして実装されると思います。
委任、集約、およびコンサルテーションはデザインパターンではありません。これらは、デザインパターンを説明するのに役立つ概念です。多くのための
コンポジションは、単純なオブジェクトまたはデータ型をより複雑なものに、つまり単一のユニットとして組み合わせる方法です。構成は、多くの基本的なデータ構造の重要な構成要素です
集約は、所有権を意味しないという点で通常の構成とは異なります。構成では、所有するオブジェクトが破壊されると、含まれるオブジェクトも破壊されます。集約では、これは必ずしも真実ではありません
委任は、プログラムの別の部分にタスクを引き渡すという、シンプルでありながら強力な概念です。オブジェクト指向プログラミングでは、あるオブジェクトが別のオブジェクト(デリゲートと呼ばれる)にタスクを割り当てる状況を説明するために使用されます。
オブジェクト指向プログラミングでのコンサルテーションは、オブジェクトのメソッド実装が、同じメッセージを別の構成オブジェクトに送信するメッセージで構成されている場合に発生します。