0

集約、封じ込め、委任の違いは何ですか?

4

3 に答える 3

2

これに COM のタグを付けたので、COM がこれらの用語をどのように使用しているかを尋ねていると思います.COM 用語では、一般的に使用される場合よりもやや具体的なものを意味します.

便利なことに、MSDN にはこれらを定義するページがあります。簡単に要約します。

  • 包含/委任- 1 つの外部オブジェクトが内部オブジェクトを所有 (包含) し、使用 (委任) する場合。2 つのオブジェクトは、別個の ID と別個のインターフェースのセットを維持します。

  • 集約- 2 つ以上の COM オブジェクトが本質的にインターフェイスをプールし、単一の COM オブジェクトであるかのように動作する場合。クライアント コードは、単一のオブジェクトのように見えますが、実際には他のオブジェクトの「集合体」を処理しています。

集約は通常、あるオブジェクトが別のオブジェクトからインターフェイスのセットを「継承」する場合に使用されます。ただし、実装はやや複雑です。COM では、オブジェクトの任意のインターフェイスから他のインターフェイスに QI できる必要があるため、関連するさまざまなオブジェクトが連携して、いずれかのオブジェクトの任意のインターフェイスから QI を実行できるようにする必要があります。他の任意のインターフェイスに対しては、参照カウントが両方のオブジェクトで機能します。

于 2011-12-07T15:49:04.927 に答える
1

コンテインメントは、別のクラス/タイプのオブジェクトであるデータ メンバーを持つ 1 つのクラスの概念を表します。

委任は、あるクラスが別のクラスを使用してタスクまたは目標を達成するという考えを表します。

委任は通常、封じ込めによって達成されます

于 2011-12-06T13:06:01.377 に答える
0

アグリゲーションコンテインメントは、オブジェクト コンポジションの一般的な概念 (com またはその他のテクノロジの概念) です。オブジェクト構成リンクには、com の集計に関する別のセクションもあります。

同様に、委任についても読むことができます。

于 2011-03-03T06:50:51.920 に答える