COM 的聚合和包容

我们可以这样去认识它们

包容(Containment/Delegate)

com的包容就是在自己的组件里利用别人的组件。

实现这种目的的步骤很简单:如下代码

HRESULT FinalConstruct()
{
HRESULT hr;
hr = CoCreateInstance( CLSID_SimpleMath,NULL,
CLSCTX_INPROC_SERVER,
IID_IMath,
(LPVOID*)&m_pSimpleIMath );
return hr;
}

void FinalRelease()
{
if( m_pSimpleIMath )
{
m_pSimpleIMath->Release();
}
}

聚合/集合

就是把别人的组建和我们组件组装到一起,我们的组件和被集合的组件可以说是同级的,具体实现参看文档,其实也很简单

主要是弄清楚它们的区别,知道什么时候该用包容,什么时候该用聚合就好了。用atl去实现它们很轻松的

相关文章

什么是设计模式一套被反复使用、多数人知晓的、经过分类编目...
单一职责原则定义(Single Responsibility Principle,SRP)...
动态代理和CGLib代理分不清吗,看看这篇文章,写的非常好,强...
适配器模式将一个类的接口转换成客户期望的另一个接口,使得...
策略模式定义了一系列算法族,并封装在类中,它们之间可以互...
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,...