有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

这种方法比创建"service"类然后创建它的实例来调用我的方法更可取吗


共 (1) 个答案

  1. # 1 楼答案

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

    一个更普遍的问题是,很难对这种静态方法进行单元测试,因为它们不容易被模仿。在这种情况下,最好使用stingleton实现接口。然后,可以用一个“虚拟”实现来模拟这个单例

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