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

本文关键字:第三方 调用 包装 接口 是否 返回 | 更新日期: 2023-09-27 18:34:07

考虑我需要调用一个看起来像

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();
    }
}

由于第三方类是由接口注入的,因此我可以模拟第三方对象进行单元测试。

这种设计更好,还是我应该引入一个 ThirdPartyClassWrapper 来封装 ThirdPartyMethod 的调用?引入太多包装器是一种反模式吗?

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

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

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