静态类/字段。你多久使用一次?

时间:2012-02-08 22:29:08

标签: java design-patterns

由于静态数据,有时很难在应用程序中找到错误。在OOP中使用静态数据是一种好方法还是更好地避免它? 提前谢谢。

更新:

您使用静态类的频率和用途是什么?

2 个答案:

答案 0 :(得分:2)

一般来说,static方法导致代码很难测试,因为

  • 我们无法知道是否有其他类改变了可能的状态,
  • 我们无法轻易模拟或切换静态实现。

但是有一些有效的用例。

通常会避免使用static方法,并且默认原则是需要激励任何static内容的存在。

正如@Louis所指出的,static变量对于提供单实例常量很有用。通常,这也适用于保存诸如Logger之类的对象的成员变量。

答案 1 :(得分:1)

静态不应该被过度使用,但在某些情况下是值得的,你应该使用静态方法来提供与实例对象没有直接关系的工厂方法或辅助方法。

每次想要执行操作或表示与类相关的数据而不是对象实例时,静态方法是值得的,因此根本不应该避免使用静态的方法,而是仅使用静态方法什么时候真的需要。

在大多数情况下对你的问题没有绝对答案(避免或不使用静态),它取决于上下文,但你应该不要滥用静电...