比方说,我有下面的类:优雅的方式
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