5
长方法重构:保持原样vs分离方法vs使用局部函数
假设我有这样长的方法: public void SomeLongMethod() { // Some task #1 ... // Some task #2 ... } 此方法没有任何重复的部分,应将其移至单独的方法或局部函数。 有很多人(包括我在内)认为长方法就是代码的味道。我也不喜欢#region在这里使用(s)的想法,并且有一个非常受欢迎的答案来解释为什么这很糟糕。 但是如果我将此代码分成方法 public void SomeLongMethod() { Task1(); Task2(); } private void Task1() { // Some task #1 ... } private void Task2() { // Some task #1 ... } 我看到以下问题: 用一个方法内部使用的定义来污染类定义范围,这意味着我应该在某个地方进行文档记录,Task1并且Task2只供内部使用SomeLongMethod(否则,每个阅读我的代码的人都必须推断出这个想法)。 污染将仅在单个SomeLongMethod方法中使用一次的方法的IDE自动完成功能(例如Intellisense)。 因此,如果我将此方法代码分成本地函数 …