圣诞大减价开始了!

具有不同接口的可选类

迹象和症状

两个类执行相同的函数,但方法名不同。

问题的原因

创建其中一个类的程序员可能不知道已经存在一个功能等效的类。

治疗

试着把类的接口放在一个共同的分母上:

  • 重命名方法S使它们在所有可选类中都相同。

  • 移动方法添加参数而且参数化方法使方法的签名和实现相同。

  • 如果类的部分功能是重复的,请尝试使用提取超类.在这种情况下,现有的类将成为子类。

  • 在确定要使用的处理方法并实现它之后,您可以删除其中一个类。

回报

  • 这样可以消除不必要的重复代码,从而使生成的代码不那么庞大。

  • 代码变得更具可读性和可理解性(您不再需要猜测创建第二个类执行与第一个类完全相同的功能的原因)。

何时忽略

  • 有时合并类是不可能的,或者困难到毫无意义。一个例子是当替代类在不同的库中,每个库都有自己的类版本。
Baidu
map