【发布时间】:2013-06-27 03:36:23
【问题描述】:
随着时间的推移......在 java 项目中引入了许多实用方法来完成更复杂和简单的任务。
当使用静态方法时,我们会在代码中引入紧密耦合,这会使我们的代码更难测试,尤其是在实用方法非常复杂的情况下。
我只是认为现在很难管理和测试这些实用程序。请指导我避免使用这些实用程序方法以及如何组织现有项目以删除所有 STATIC 实用程序。
你能帮我避免使用静态方法吗?
【问题讨论】:
-
我真的不明白使用
static方法如何增加耦合并使测试变得困难。 -
@NPE:您不能模拟或覆盖静态方法。因此,使用静态方法的代码很难测试。
-
@TomAnderson 你得到的是错误的方法。静态方法是无状态的,这使得测试变得容易
-
@Bohemian:不。请再次阅读我的评论。静态方法可能很容易测试,但使用它们的代码通常不是。
-
@JensSchauder 你称之为解决方法,我称之为解决方案。有时需要一个接口来模拟。那么每个方法都应该在接口中,还是使用可以模拟非接口方法的“变通”框架?