《重构:改善既有代码的设计》中提到过一些代码的坏味道,针对这些坏味道,需要进行重构。
重复代码 duplicated code
- 问题1:同一个类的两个函数含有相同的表达式
- 解决方案:采用Extract Method提炼出重复的代码,然后让这两个地点都调用被提炼的那段代码
- 问题2:两个互为兄弟的子类内含有相同表达式
- 解决方案:对两个类都使用Extract Method, 然后再对被提炼出来的代码使用 pull up method,将它推入超类中。
- 问题3:两个互不相关的类出现相同表达式
- 解决方案:对其中一个使用extract class,将重复代码提炼到一个独立类中,然后再另一个类中使用这个新类