在过去的十年左右,我一直在为我的Java实用程序类使用下面的模式。该类只包含静态方法和字段,声明为final
,因此不能进行扩展,并且具有private
构造函数,因此不能实例化。
public final class SomeUtilityClass {
public static final String SOME_CONSTANT = "Some constant";
private SomeUtilityClass() {}
public static Object someUtilityMethod(Object someParameter) {
/* ... */
return null;
}
}
现在,随着Java8中static methods in interfaces的引入,我最近发现自己在使用实用程序接口模式:
public interface SomeUtilityInterface {
String SOME_CONSTANT = "Some constant";
static Object someUtilityMethod(Object someParameter) {
/* ... */
return null;
}
}
这让我摆脱了构造函数,以及接口中隐含的大量关键字(public
、static
、final
)。
这种方法有什么缺点吗?在实用程序接口上使用实用程序类有什么好处吗?
https://stackoverflow.com/questions/30905236
复制相似问题