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