假设我有一堆看起来像......
class Foo{
private Bar highlyCoupled = new highlyCoupled();
public bool DoTheThing(){
return highlyCoupled.doesTheThing();
}
}
是否可以使用反射来打开 foo 并注入(duck-punch 可能是一个更正确的术语)某种 mockHighlyCoupled 来代替 highlyCoupled?
这种情况下怎么办...
class DoubleFoo : Foo{
public bool DoTheOtherThing(){
return DoTheThing();
}
}
继承的highlyCoupled 可以在其位置插入一个模拟吗?
不幸的是,重构代码以便不需要反射是不可能的。