如果一个类有5层次的层次结构,是否有办法或工具将层次结构中的所有代码组合成一个类(仅使用最深层的方法定义)?
在进行API版本控制时,我们只有一个代码库,我们在不同版本中使用继承来更改逻辑(仅在需要时),同时还重用旧版本的代码。 在20个版本之后得到的是一个类可以具有20层的层次结构。最旧的10个版本已被弃用(对公众不可见),但代码仍然可供新版本重用。
我们现在要做的是将这10个最旧的版本合并为一个版本(最新的已弃用版本)。这样我们在代码库中的混乱就会减少。一种方法是通过10个版本并将方法自己组合到一个类中,但有没有办法以编程方式执行此操作?
由于
答案 0 :(得分:0)
这可以通过迭代应用Push Down Method来实现:
超类上的行为仅与其某些子类相关。
将其移至那些子类。
不做任何广告,但这种重构可以使用IDE完成。例如,PhpStorm可以帮助您提供push members down功能。