长方法
迹象和症状
方法包含太多代码行。一般来说,任何超过十行的方法都应该让你开始问问题。

问题的原因
就像加利福尼亚旅馆一样,总是有一些东西被添加到一个方法中,但没有任何东西被删除。由于编写代码比阅读代码更容易,这种“气味”一直没有被注意到,直到方法变成一个丑陋的、超大的野兽。
从心理上讲,创建一个新方法通常比在现有方法上添加新方法更难:“但它只有两行,为它创建一个完整的方法是没有用的……”这就意味着又加了一行,又加了一行,产生了一大堆意大利面条般的代码。
治疗
根据经验,如果您觉得需要对方法中的某些内容进行注释,您应该将这段代码放到一个新方法中。如果需要解释,即使是单行也可以而且应该被分割成一个单独的方法。如果方法有一个描述性的名称,那么没有人需要查看代码来了解它是做什么的。

若要减少方法体的长度,请使用提取方法.
如果没有前面的食谱帮助,尝试移动整个方法到一个单独的对象通过用方法对象替换方法.
条件操作符和循环是一个很好的线索,代码可以移动到一个单独的方法。对于条件句,使用分解条件.如果有循环,那就试试提取方法.
回报
在所有面向对象的代码类型中,具有短方法的类生存时间最长。方法或函数越长,就越难理解和维护。
此外,长方法为不必要的重复代码提供了完美的隐藏场所。

性能
方法数量的增加会像许多人声称的那样损害性能吗?在几乎所有情况下,影响都是可以忽略不计的,甚至不值得担心。
此外,现在您有了清晰易懂的代码,您更有可能找到真正有效的方法来重构代码,并在需要时获得真正的性能提升。