2016-03-08 48 views
0

我有一个简单的Java应用程序,它在一个类的main method中执行其所有逻辑。使用所有静态方法而不是其他“服务”类的缺点?

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

该方法优于例如创建一个"service"类,然后创建它的一个实例来调用我的方法?

+0

一个缺点:如果一个实例的方法改变的东西,它改变了向它提出的所有来电,因为它是静态的 – Stultuske

+0

可以请你详细说明一下吗? – java123999

+0

你的意思是向你解释静态是什么?这是非常基本的。只需查找java静态vs实例 – Stultuske

回答

1

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

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

也看到所以这个问题被嘲笑:Why aren't static methods considered good OO practice?

相关问题