2012-03-16 89 views
4

我需要在外部库和客户端代码之间添加一个图层,以便客户端具有与底层库一致的接口,并且我们可以用最少的代码更改来切换库。这是最好的设计模式是什么?

例如:

public interface IConsistentInterface 
{ 
    void Foo(string bar); 
    void Bar(string foo); 
} 

内部此接口的具体实现将调用到库,使用任何功能会提供。这样如果我们切换出库,我们只需要改变这个接口的具体类型的内部调用。

这看起来像我适配器模式,但这是最好的方法来解决这个问题?

谢谢。

回答

4

看起来Gateway模式可能很适合这里。但是,正如你所说,Adapter模式也可以为你工作。事实上,考虑这两者在代码中的可能性看起来没有什么区别。

你不能错误地将外部API规范化为另一个API,你的代码可以持续使用。如果外部API发生更改,则破坏代码将限制为您的规范化API,您可以在其中执行修复或损坏限制。净效应和两种模式的目的都是为了减少代码其余部分的表面积。

相关问题