COM不支持任何形式的实现继承。

COM支持两种形式的对象组装:包含(Containment)聚集(Aggregation)

  • 包含是一个对象拥有指向另一个对象的唯一引用。
    外部对象只是把请求转发给内部对象,所谓转发就是调用内部对象的方法。
    包含能重用内含于其他构件的实现,是完全透明的。
    如果包含层次较深,或者被转发的方法本身相对简单,包含会存在性能上的问题。

因此 COM定义第二类重用形式,聚集。

  • 聚集直接把内部对象接口引用传给外部对象的客户,而不是再转发请求。
    保持透明性是很重要的,因为外部对象的客户无法辨别哪个特定接口是从内部对象聚集而来的。