一天一个重构方法(19):以异常代替错误码
2009-07-25 20:25:00摘要:Replace Error Code with Exception:以异常代替错误码 某个函数返回一个特定的代码,用以表示某种错误情况,请改用异常。 阅读全文
摘要:Replace Error Code with Exception:以异常代替错误码 某个函数返回一个特定的代码,用以表示某种错误情况,请改用异常。 阅读全文
摘要:Introduce Parameter Object:引入参数对象 某些参数总是很自然地同时出现,以一个对象取代这些参数 阅读全文
摘要:Return ASAP:尽早返回 该话题实际上是诞生于移除箭头反模式重构之中。在移除箭头时,它被认为是重构产生的副作用。为了消除箭头,你需要尽快地return。 阅读全文
摘要:Remove Double Negative:删除双重否定 尽管我在很多代码中发现了这种严重降低可读性并往往传达错误意图的坏味道,但这种重构本身还是很容易实现的。这种毁灭性的代码所基于的假设导致了错误的代码编写习惯,并最终导致bug。如下例所示: 阅读全文
摘要:你有一个方法,其内部完全取决于参数值而采取不同反应,针对该参数的每一个可能值,建立一个独立方法。 阅读全文
摘要:Parameterize Method:另方法携带参数 若干方法做了类似的工作,但在方法本体中却包括了不同的值,可以建立单一方法,以参数表达那些不同的值。 先看一个简单的例子: 阅读全文
摘要:Remove Arrowhead Antipattern:删除箭头反模式 简单地说,当你使用大量的嵌套条件判断时,形成了箭头型的代码,这就是箭头反模式(arrowheadantipattern)。我经常在不同的代码库中看到这种现象,这提高了代码的圈复杂度(cyclomatic complexity)。下面的例子演示了箭头反模式: 阅读全文
摘要:Remove Parameter:删除参数 本体方法不再需要某个参数,将该参数去除。 参数指出函数所需信息,不同的参数值代表不同的意义。函数调用者必须为每个参数操心该传什么东西进去。如果你不去掉多余参数,你就是让你的每一位用户多费一份心。 阅读全文
摘要:Add Parameter:添加参数 某个方法需要从调用端得到更多信息,为此方法添加一个对象参数,让该对象带进方法所需信息。 应用这个重构你只需多加入一些参数即可。简单吧。我就不举例了。 阅读全文
摘要:Rename Method:重命名方法 阅读全文