【代码重构】异曲同工的类(alternative classes with different interfaces)-- 如何消除两个功能相似的类

异曲同工的类(alternative classes with different interfaces)

●症状和特点

  两个类执行功能相同的函数但是却有着不同的函数名。
在这里插入图片描述

●问题产生的原因

  程序员创造了一个类,但是他却不知道有着另一个功能和他相同的类已经存在。

●解决方法

  尝试将不同类的函数接口让它们具有相同的特性。
  ●使用重命名方法使得的这些接口在所有可替代类中具有相同的名字。
  使用搬移方法法,添加参数法和令函数携带参数法使得方法具有相同签名和执行。
  如果类中只有一部分功能是重复的,尝试使用**提取父类法。**在这种情况下,原来的这个类就会变成一个子类。
  当你决定了哪一种方法并且执行了它以后,你可能就发现你可以删除其中一个类了。

●好处

  去除掉了不必要的重复的代码,让代码不再变得更精简。
  代码变得更具有可读性也更容易理解(你不用再去猜测为什么创造出了一个执行着和一个已有的类相同方法的类)
在这里插入图片描述

●何时可以忽略

Sometimes merging classes is impossible or so difficult as to be pointless. One example is when the alternative classes are in different libraries that each have their own version of the class.
  有时合并一个类变得不可能或者非常苦难以至于没有意义。一个例子就是当可替代类是在不同的库中,每个库都有它自己版本的类的情况时。

猜你喜欢

转载自blog.csdn.net/weixin_41937380/article/details/127997719