【整理】【代码的坏味道】重复代码(Duplicated Code)

时间:2024-03-07 08:08:30
  1. 同一类中的不同函数具有相同表达式,直接采用Extract Method(提炼函数)提炼重复的代码。
  2. 两个互为兄弟的子类含有相同的表达式。
    • 首先采用Extract Method(提炼函数)提炼重复的代码。
    • 然后再对提炼的代码使用Pull Up Method(方法上移),将它移入父类。
  3. 两个互为兄弟的子类代码类似,并非完全相同。
    • 首先采用Extract Method(提炼函数)区分相同部分和差异部分代码,构成单独函数。
    • 运用Form Template Method(塑造模板函数)获得一个Template Method设计模式。
    • 使用Substitute Algorithm(替换算法)将其他函数的算法替换掉。
  4. 两个毫不相干的类含有相同的代码。
    • 对其中一个类考虑使用Extract Class(提炼类),将重复的代码提炼到一个独立的类中,然后在另一个类中使用这个新类。或者重复代码的函数属于第三个类,这两个类都引用第三个类。