与其他“服务”类相比,使用所有静态方法的缺点是什么?

时间:2016-03-08 10:35:56

标签: java static

我有一个简单的Java应用程序,它在一个类的main method中执行其所有逻辑。

目前我刚刚在这个类中创建了方法,将它们声明为Static并在main中调用它们。

这种方法是否优于例如创建一个"service"类然后创建它的实例来调用我的方法?

1 个答案:

答案 0 :(得分:1)

如果你的方法功能很少(没有副作用),那么使用静态方法就可以了。如果它们有副作用(例如更改静态类成员),则此设计很危险,因为系统的其他部分可能会突然中断。

更普遍的问题是它很难对这种静态方法进行单元测试,因为它们不容易被嘲笑。在这种情况下,最好使用实现接口的stingleton。然后可以通过"虚拟" -implementation

来模拟这个单例

另见SO上的这个问题:Why aren't static methods considered good OO practice?