这是哪种设计模式?

Pau*_*eld 6 oop design-patterns

在当前(C#)项目中,我们有一个包含非接口连接对象的第三方程序集.使用IoC等我们可以将这个具体实例注入到我们的代码中,但它证明了单元测试等的噩梦.我们使用MoQ作为我们的模拟框架,所以理想情况下可以使用接口来解决问题,我们不想要沿着使用像Moles这样的东西的路线,因为我们希望最小化技术.

如果我们创建一个界面来模仿第三方连接对象的所需功能,然后创建包含第三方对象实例的该接口的实现者,那么这将允许我们的代码在接口上工作,我们的Io​​C和单元测试都将要开心.然而,在讨论中,我们已经围绕它确实是哪种设计模式!

所以问题是," 上面描述的情况如下并在下面的代码中说明: "

  1. 适配器,因为我们提供现有功能的包装器.
  2. 代理,因为我们正在为其他东西提供接口.
  3. Facade因为作为流程的一部分,我们将为更大的对象提供简化的界面.

 

namespace ExampleCode
{
    public interface IConnector
    {
       void Open();
    }

    public class ConnectorWrapper : IConnector
    {
       ThirdPartyConnector _instance;

       public ConnectorWrapper(ThirdPartyConnector instance)
       {
          _instance = instance;
       }

       void Open()
       {
         _instance.Open();
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

Cha*_*ion 1

这绝对是一个门面。我一直这样做是为了简化过度设计的 API。