композиция против примера МИ

Я наткнулся на эту библиотеку, Orocos BFL. Он использует внешние библиотеки матриц, а при их обертывании они используют множественное наследование; такие как

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

в отличие от композиции

Есть ли веская причина (производительность и т. Д.) Или это просто плохая часть кода?

0

Решение

Здесь есть причина для использования MI. Таким образом, Matrix Этот класс можно использовать в алгоритмах, специфичных для orocos bfl, но он также может использоваться в алгоритмах, которые ожидают матрицы библиотеки, которые orocos bfl использует для своей реализации.

Библиотека orocos может использовать разные библиотеки для обеспечения базовой реализации матрицы, поэтому алгоритмы, предоставляемые orocos, нельзя привязать к одному конкретному интерфейсу матрицы.
В то же время пользователям библиотеки orocos, скорее всего, потребуются дополнительные алгоритмы для работы с матрицами, которые они используют с библиотеками orocos.
Используя множественное наследование, библиотека orocos может рассматриваться как расширение одной из нескольких базовых матричных библиотек.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]