只调用一次的代码块 - 值得拥有自己的方法吗?

an0*_*00b 5 java code-reuse refactoring code-readability

通过观察各种Android应用程序的源代码(不是我编写的),我注意到了将某些代码片段放入自己的方法中的模式,尽管实际上没有任何代码重用,因为这些方法只在整个过程中被调用一次应用.

到目前为止,我有一个经验法则,规定如果在应用程序代码中使用两次或更多代码,那么它就有其自身的方法,仅仅是为了消除代码冗余.

但是看到那些整齐地将代码块分解成自己的方法(以及自己的方法调用开销),我开始说,也许我错过了一些东西.

除了用于文档目的之外,还有什么其他原因可以证明只将4行代码(只调用一次!)放入自己的方法中?

Jon*_*eet 8

开始的三个理由:

  • 您可以将它与其他任何东西分开进行测试.(这可能最终违背了仅测试公共API的咒语,但这对我来说没问题.如果我必须制作一个方法包而不是私有来测试它,这很烦人,但我宁愿这样做.必须一次性测试一大堆逻辑.)
  • 您可以从简单的方法构建更复杂的方法,其中整个复杂的方法是在单个抽象级别,而不指定细节.阅读高级方法意味着只需读取它所组成的构建块的名称; 那么你可以潜入只是你感兴趣,如果你需要的细节.
  • 你可以编写各自做好一件事的方法,并以明显的方式命名和记录它们

当然这可能过头了,但绝对有用.


vau*_*oid 7

我可以想到几个原因,虽然可以肯定的是有一些重叠:

  • 它有助于使您的代码自我记录.
  • 它使(单元)测试更容易.
  • 它有助于阻止您使用数百行的方法.
  • 您可能希望将来在其他地方使用该代码.

当然,所有这些都依赖于这4行代码相关并执行单个功能的假设.我发现一个好的经验法则是:如果你不能想到它的名字,它可能不应该是一种方法.

  • +1经验法则.我要强调一下:"如果你想不出它的名字,它可能不应该是一种方法." (4认同)