今天看啥  ›  专栏  ›  MR_Model

重构读书笔记-9总结

MR_Model  · 简书  ·  · 2019-07-15 09:40

重构第九章

总结

本章主要讲解了有关if-else-then的条件语句如何简化,提炼。

1.Decompose Conditional(分解条件式):将一个复杂的条件逻辑分割称为若干个小块。
2.Consolidate Conditional Expression(合并条件式):将相同结果的条件式,合并在一起,同时可以使用Extract Method(提炼函数)的方法,使得条件式更加简单明了。
3.Consolidate Duplicate Conditional Fragments(合并重复的条件片段):将不同分支后面的重复成分去除。
4.Remove Control Flag(移除控制标记):去除不需要的控制标记。
5.Replace Nested Conditional With Guard Clauses(以卫语句取代嵌套条件式):在条件式中进行返回,使得阅读者更加注重于当前逻辑下运行的代码。
6.Replace Conditional with Polymorphism(以多态取代条件式):面对switch语句,面向对象的特性使得switch很容易使用多态替换。
7.Introduce Null Object(引入Null对象):使用多态的特性,可以去除对于null value的校验。
8.Introduce Assertion(引入断言):如果你发现代码假设某个条件始终为真,就加入一个断言明确说明这种情况。可以方便调试和阅读。

读书第一遍重构思路

本章主要是对条件式的一个提炼,重构。

[Decompose Conditional(分解条件式)]使用提炼函数的方法,可以使得程序更加的简单。
[Consolidate Conditional Expression(合并条件式)]和[Consolidate Duplicate Conditional Fragments(合并重复的条件片段)]都是去除重复代码的好方法,一个在条件式,一个在条件式所执行的代码。
[Remove Control Flag(移除控制标记)]去除不需要的代码控制变量
如果不追求与函数必须只有一个出口的话,[Replace Nested Conditional With Guard Clauses(以卫语句取代嵌套条件式)]是很好的重构方法。
[Replace Conditional with Polymorphism(以多态取代条件式)]和[Introduce Null Object(引入Null对象)]都是利用了多态的方法,一个去除了类似型别码的Switch语句,一个去除了对于空值的判断。
程序员认为一定为真的地方,可以使用[Introduce Assertion(引入断言)]方法,加入断言。断言在程序员逻辑没有问题的情况下,对程序没有任何的作用,方便调试和阅读。




原文地址:访问原文地址
快照地址: 访问文章快照