class MyTransport : public ITransport
{
void setSource(ITransport* src) { m_source = src; }
/* implement ITransport using m_source */
private:
ITransport* m_source;
};
Мне нужно загрузить (во время выполнения) около ITransport
и настроить его выход. В то же время мне необходимо предоставить ITransport
своим клиентам. (Это было ранее достигнуто просто наследованием от некоторого SourceTransport
, но теперь переход к плагину)изменение наследования в состав
Это правильный способ сделать это?
Я рассматриваю вопрос немного неясно ... Если это соответствует вашей потребности, то да (вы после всего того, кто решает, правильно ли решение). Если ваш вопрос заключается в том, что вы сделали, это композиция с точки зрения oop: да, если вы владелец памяти данного ITransport, нет, если вы не владелец памяти (если вы не владелец памяти, это будет агрегация). – MichaelCMS
Спасибо за разъяснение. На самом деле мой вопрос состоял в том, что существует лучшая модель проектирования для реализации «родительской» замены во время выполнения. Однако этот выглядит нормально .. – VladimirLenin