다음을 통해 공유


포함/위임

COM에서 개체를 다시 사용하는 가장 일반적인 메커니즘은 포함/위임입니다. 이러한 유형의 재사용은 대부분의 개체 지향 언어 및 시스템에서 발견되는 친숙한 개념입니다. 내부 개체를 사용해야 하는 외부 개체는 내부 개체에 대한 개체 클라이언트 역할을 합니다. 외부 개체는 내부 개체를 "포함"하고 외부 개체에 내부 개체의 서비스가 필요한 경우 외부 개체는 구현을 내부 개체의 메서드에 명시적으로 위임합니다. 즉, 외부 개체는 내부 개체의 서비스를 사용하여 자체 구현합니다.

외부 개체와 내부 개체가 동일한 인터페이스를 지원할 필요는 없지만 외부 개체가 구현하지 않는 인터페이스를 구현하는 개체를 포함하고 외부 개체의 메서드를 단순히 내부 개체의 해당 메서드에 대한 호출로 구현하는 것이 합리적입니다. 그러나 외부 개체와 내부 개체의 복잡성이 크게 다르면 외부 개체는 내부 개체에 구현된 인터페이스 메서드에 대한 호출을 위임하여 인터페이스의 일부 메서드를 구현할 수 있습니다.

외부 개체에 대한 포함을 구현하는 것은 간단합니다. 외부 개체는 다른 클라이언트와 마찬가지로 사용해야 하는 내부 개체를 만듭니다. 이것은 새로운 것이 아닙니다. 프로세스는 외부 개체가 자체적으로 문자열 개체로 간주되지 않더라도 특정 문자열 함수를 수행하는 데 사용하는 C++ 문자열 개체를 포함하는 C++ 개체와 같습니다. 그런 다음 내부 개체에 대한 포인터를 사용하여 외부 개체의 메서드를 호출하면 내부 개체 메서드에 대한 호출이 생성됩니다.

집계