컴퓨터 공부/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 참고