比方說,我有下面的類:優雅的方式
class Foo
{
public:
Foo()
{
Bar();
}
private:
Bar(bool aSendPacket = true)
{
if (aSendPacket)
{
// Send packet...
}
}
};
我寫一個測試工具,它需要創建通過工廠模式的Foo
對象(即我沒有實例它直接)。我無法更改任何工廠實例化代碼,因爲這是在我無法訪問的框架中。
由於各種原因,我不希望Bar
方法在從測試工具運行時發送數據包。
假設我不能直接調用Bar
(消除像使用朋友類這樣的潛在解決方案),使用什麼樣的優雅設計模式來防止運行我的測試工具時發送數據包?我絕對不想用特殊情況污染我的生產代碼。
您是否有權訪問並更改'Foo'? – Chubsdad 2010-09-24 04:54:15
@Chubsdad - 是的,我可以改變'Foo'。 – LeopardSkinPillBoxHat 2010-09-24 04:59:49
將Foo放在Facade的後面,它將轉發除Foo()函數以外的所有函數調用。 – wilx 2010-09-24 05:27:49