我有一个简单的Java
应用程序,它在一个类的main method
中执行其所有逻辑。
目前我刚刚在这个类中创建了方法,将它们声明为Static
并在main中调用它们。
这种方法是否优于例如创建一个"service"
类然后创建它的实例来调用我的方法?
答案 0 :(得分:1)
如果你的方法功能很少(没有副作用),那么使用静态方法就可以了。如果它们有副作用(例如更改静态类成员),则此设计很危险,因为系统的其他部分可能会突然中断。
更普遍的问题是它很难对这种静态方法进行单元测试,因为它们不容易被嘲笑。在这种情况下,最好使用实现接口的stingleton。然后可以通过"虚拟" -implementation
来模拟这个单例另见SO上的这个问题:Why aren't static methods considered good OO practice?