Java 防止使用依赖包的某些API
我们有一些第三方软件包的代码包装API,现在我们不希望我们的团队成员错误地直接使用第三方软件包,有什么方法可以防止它?(例如添加某种签入UT)。例如: 第三方软件包中的代码(因此我们无法更改): 我的软件包中的代码(我们需要第三方软件包): 在我们的代码中,如果有人错误地使用了Java 防止使用依赖包的某些API,java,api,unit-testing,Java,Api,Unit Testing,我们有一些第三方软件包的代码包装API,现在我们不希望我们的团队成员错误地直接使用第三方软件包,有什么方法可以防止它?(例如添加某种签入UT)。例如: 第三方软件包中的代码(因此我们无法更改): 我的软件包中的代码(我们需要第三方软件包): 在我们的代码中,如果有人错误地使用了OrigProvider.getSomething,那么我们的程序将在无声中出错,那么如何保证没有人使用OrigProvider.getSomething 提前谢谢 丑陋的解决方案之一是运行静态代码分析器,并在代码中查找另
OrigProvider.getSomething
,那么我们的程序将在无声中出错,那么如何保证没有人使用OrigProvider.getSomething
提前谢谢 丑陋的解决方案之一是运行静态代码分析器,并在代码中查找另一个库的包的
import
语句(当然,包装库的代码除外)。如果将它作为一个测试,那么每次有人直接使用该库时,它都会失败。您可能还可以将包装第三方库的API的代码封装到单独的模块中,并使您的主代码库仅依赖于该模块,而不依赖于第三方库one@AlexeySubach,静态代码分析器有点太复杂了,尽管它应该可以工作,但一个丑陋的解决方案是运行静态代码分析器,并在代码中查找另一个库的包的import
语句(当然,包装库的代码除外)。如果将它作为一个测试,那么每次有人直接使用该库时,它都会失败。您可能还可以将包装第三方库的API的代码封装到单独的模块中,并使您的主代码库仅依赖于该模块,而不依赖于第三方库one@AlexeySubach,静态代码分析器有点太复杂了,虽然它应该是有效的。
class OrigProvider {
public static String getSomething() { return sth;}
}
class MyProvider {
public static String getSomething() {
sth = OrigProvider.getSomething;
process(sth);
return sth;
}
}