0
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 2015-01-15 16:57:37
感谢您的澄清。其实我的问题是关于在运行时是否有更好的设计模式来实现“父”替换。但是这个看起来不错。 – VladimirLenin 2015-01-15 19:20:32