组合与MI的例子

composition vs MI example

本文关键字:MI 组合      更新时间:2023-10-16

我偶然发现了这个库。它使用外部矩阵库,在包装它们时,它们使用多继承;如

class Matrix: public Matrix_Wrapper, public Boost::Matrix
{
 //some implementation
}

相对于组合

是否有很好的理由(性能等),或者只是一段糟糕的代码?

这里使用MI是有原因的。这样,Matrix类可以用于特定于orocos bfl的算法,但它也仍然可以用于需要orocos bfl库的矩阵来实现的算法。

orocos库可以使用不同的库来提供基本的矩阵实现,因此orocos提供的算法不能绑定到一个特定的矩阵接口。
同时,orocos库的用户很可能需要额外的算法来操作他们使用orocos库的矩阵。
通过使用多重继承,orocos库可以被视为几个底层矩阵库之一的扩展。