第三章 代码的坏味道
重复代码-Duplicate Code
问题:同一个类的两个函数含有相同的表达式
解决:采用Extract Method提炼出重复的代码,然后让这两个地点都调用被提炼出来的那一段代码
问题:两个互为兄弟的子类含有相同表达式
解决:对这两个类采用Extract Method,然后再对被提炼出来的代码使用Pull Up Method,将他推入超类中。
问题:两个互为兄弟的子类含有相似表达式
解决:采用Extract Method将相似部分和差异部分隔离,构成一个单独函数,然后采用Form Template Method获得一个Template Method设计模式。
问题:两个毫不相干的类出现相同代码
解决:对其中一个类采用Extract Method,将重复代码提炼到一个独立类中,然后在另一个类中使用这个新类。