私有帮助器方法与Java中的公共静态实用程序方法

Sab*_*han 27 java spring static

我有一个变长的Java类.当我通过代码质量工具运行它时,我会被标记为类中的行数.

这是一个较低的层类,由上层使用Spring @Autowired.该类有许多非静态的私有实例方法.它们不使用任何实例字段,仅适用于方法参数.

我可以像public static在某个单独的实用程序类中一样安全地移动这些方 有什么缺点?

Gho*_*ica 66

这里的"错误"心态.

你没有重做你的课程,因为工具抱怨这个或那个.

您希望提高源代码的质量 ; 这些工具可以帮助识别"值得思考的主题".你把他们的反馈作为暗示 ; 不是"秩序".

因此,您不必担心类中的"代码行".相反,您担心这门课的责任.含义:行号计数本身不是问题 - 但违反单一责任原则的是.

因此:你退后一步,看看你班上到底在做什么.当它显然不止一件事时,你将这些方面提取到其他类中!

含义:如果您确实发现所有这些代码都"属于"该类的责任; 然后把它留在那里.不要开始将内部实现细节放入不相关的帮助程序类中; 只是因为某些工具会警告你行数.

另一方面,将私有方法转换为静态/包保护的东西将允许您对这些方法进行单元测试.这可能是一个优势.但正如所说:只要我们谈论实施细节,他们应该保持私密; 并且他们不应该进行单元测试.

长话代码:了解并理解"干净代码"的含义; 并尝试遵循那里概述的想法.

  • 仍然困惑,但假设upvote是你的,所以,无论如何.喵. (10认同)
  • *点头*,**班级的责任**! (4认同)