我有一个使用第三方(外部罐子)的应用程序,并且到处都有。 比方说,我在某个类中有一个方法f
public int f(int x){
Y y = new Y(x);
return y.someCalculations();
}
其中Y是来自第三方的课程。
说我想转移到其他第三方?或者我自己实现Y,我怎样才能解除依赖,以便我可以毫不费力地使用我想要的任何第三方。
提前感谢你
答案 0 :(得分:7)
使用适配器模式将第三方库类包装到您想要向客户端公开的接口中。
这样客户端将直接使用您正在公开的接口,而不必直接调用第三方库方法。请注意,客户端可以是您自己的应用程序或最终客户端的类。当第三方库发生变化时,这为您提供了屏蔽或断开接口的方法。
Wrappers用于采用第三方库和框架 - 大多数 使用第三方库的应用程序使用适配器作为中间 应用程序和第三方库之间的层进行解耦 来自图书馆的申请。如果必须使用另一个库 只需要一个新库的适配器,而不必 更改应用程序代码。
答案 1 :(得分:2)
如果第三方库是通用规范的实现。例如JDBC。
然后Factory pattern
是合适的。
然而你可能追求的是Delegation pattern
。其中涉及围绕第三方编写包装类调用委托给库,因此当库更改时,您只需重写Wrapper。
public class MyWrapperClass{
private Y y = new Y();
public int someCalculations(int myParam){
y.someCalculations(myParam);
}
}