0
我有一个简单的Java
应用程序,它在一个类的main method
中执行其所有逻辑。使用所有静态方法而不是其他“服务”类的缺点?
当前我刚刚在这个类中创建了方法,将它们声明为Static
并在主要中调用它们。
该方法优于例如创建一个"service"
类,然后创建它的一个实例来调用我的方法?
我有一个简单的Java
应用程序,它在一个类的main method
中执行其所有逻辑。使用所有静态方法而不是其他“服务”类的缺点?
当前我刚刚在这个类中创建了方法,将它们声明为Static
并在主要中调用它们。
该方法优于例如创建一个"service"
类,然后创建它的一个实例来调用我的方法?
如果你的方法是功能性的(没有副作用),那么可以使用静态方法。如果他们有副作用(例如更改静态类成员),则此设计是危险的,因为系统的其他部分可能突然中断。
一个更普遍的问题是,它很难单元测试这种静态方法,因为它们不容易被嘲笑。在这种情况下,最好使用实现接口的stingleton。这单然后通过一个“虚拟” - 实施
也看到所以这个问题被嘲笑:Why aren't static methods considered good OO practice?
一个缺点:如果一个实例的方法改变的东西,它改变了向它提出的所有来电,因为它是静态的 – Stultuske
可以请你详细说明一下吗? – java123999
你的意思是向你解释静态是什么?这是非常基本的。只需查找java静态vs实例 – Stultuske