重构:改善既有代码的设计 第八章 读书笔记
第8章 搬移特性
8.1 搬移函数(Move Function)
在对象之间搬移函数;
8.2 搬移字段(Move Field)
在对象之间搬移字段;
8.3 搬移语句到函数(Move Statements into Function)
动机:消除重复,如果我发现调用某个函数时,总有一些相同的代码也需要每次执行,那么我会考虑将此段代码合并到函数里头。
8.4 搬移语句到调用者(Move Statements to Callers)
和搬移语句到函数作用相反
8.5 以函数调用取代内联代码(Replace Inline Code with Function Call)
demo:
8.6 移动语句(Slide Statements)
曾用名:合并重复的代码片段
动机:让存在关联的东西一起出现,可以使代码更容易理解。如果有几行代码取用 了同一个数据结构,那么最好是让它们在一起出现,而不是夹杂在取用其他数据 结构的代码中间。
8.7 拆分循环(Split Loop),一般循环不会成为性能瓶颈,如果成为的性能瓶颈再恢复多功能操作。
动机:但如果你在一次循环中做了两件不同的事,那么每 当需要修改循环时,你都得同时理解这两件事情。如果能够将循环拆分,让一个 循环只做一件事情,那就能确保每次修改时你只需要理解要修改的那块代码的行 为就可以了。
code demo:
8.8 以管道取代循环(Replace Loop with Pipeline)
相当于用stream取代循环。stream是管道的一种处理方式。
8.9 移除死代码(Remove Dead Code)
不用的代码,立刻删除它。