考虑我需要调用看起来像
的第三方APIpublic class ThirdPartyClass : IThirdPartyClass
{
public IThirdPartyReturnObject ThirdPartyMethod()
{
//some code
}
}
我称之为:
public void MyClass
{
private IThirdPartyClass _thirdPartyObject;
public MyClass(IThirdPartyClass thirdPartyObject)
{
_thirdPartyObject = thirdPartyObject;
}
public void MyFunction()
{
_thirdPartyObject.ThirdPartyMethod();
}
}
由于第三方类是通过接口注入的,我可以模拟第三方对象进行单元测试。
这个设计是否更好,还是应该引入一个只包含ThirdPartyMethod调用的 ThirdPartyClassWrapper ?引入太多包装器是反模式吗?
答案 0 :(得分:1)
没有必要引入包装类 - 来自任何地方的模拟接口是单元测试的标准和简单方法。
您是否应该这样做 - 取决于您的需求 - 即有时facade pattern具有更大的界面,结合多个第三方界面可能更适合您的项目。