컴퓨터 공부/COM&ActiveX

[6월 11일 3교시] Containment & Aggregation

려리군 2009. 6. 11. 11:15

※ Client는 Outer의 인터페이스만 볼 수 있다.

하지만 Client는 Inner의 인터페이스를 사용하고 싶을 때 Containment와 Aggregation 기법을 사용할 수 있다.

COM 개체가 Aggregation을 지원하지 않는 경우에는 Containment를 사용할 수 밖에 없다.


Containment

Outer가 Inner인터페이스 기능을 밖으로 열어놓고 Inner의 인터페이스에게 delegate(위임)한다. 

(혹은 forwarding)

특징 : 간접적, 비효율적


Aggregation

Inner의 인터페이스 기능 그대로 Outer인터페이스 밖으로 공개한다.

IUnknown이 Outer와 Inner에 대해 다르기 때문에 (QueryInterface)문제가 되므로 

Inner의 IUnknown을 Outer로 delegate(위임)한다.



특징 : 직접적, 효율적


354Page~ 361Page 참고