我是否需要一个返回接口的第三方调用的包装器?

时间:2016-02-10 16:45:56

标签: c# design-patterns

考虑我需要调用看起来像

的第三方API
public 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 ?引入太多包装器是反模式吗?

1 个答案:

答案 0 :(得分:1)

没有必要引入包装类 - 来自任何地方的模拟接口是单元测试的标准和简单方法。

您是否应该这样做 - 取决于您的需求 - 即有时facade pattern具有更大的界面,结合多个第三方界面可能更适合您的项目。