与其他“服务”类相比,使用所有静态方法的java缺点是什么?
我有一个简单的Java
应用程序,它在一个类的main method
中执行所有逻辑
目前,我刚刚在这个类中创建了方法,将它们声明为Static
,并在main中调用它们
这种方法比创建"service"
类然后创建它的实例来调用我的方法更可取吗
你可以在下面搜索框中键入要查询的问题!
我有一个简单的Java
应用程序,它在一个类的main method
中执行所有逻辑
目前,我刚刚在这个类中创建了方法,将它们声明为Static
,并在main中调用它们
这种方法比创建"service"
类然后创建它的实例来调用我的方法更可取吗
# 1 楼答案
如果你的方法功能性很好(没有副作用),那么使用静态方法是可以的。如果它们有副作用(例如更改静态类成员),这种设计是危险的,因为系统的其他部分可能会突然中断
一个更普遍的问题是,很难对这种静态方法进行单元测试,因为它们不容易被模仿。在这种情况下,最好使用stingleton实现接口。然后,可以用一个“虚拟”实现来模拟这个单例
另见关于SO的这个问题:Why aren't static methods considered good OO practice?