首页 > 解决方案 > 有没有办法在一个视图中查看子类的整个代码(来自上层)

问题描述

如果一个类有 5 层层次结构,有没有办法或工具将层次结构中的所有代码组合到一个类中(仅使用最深层的方法定义)?

在进行 API 版本控制时,我们有一个单一的代码库,并且我们使用继承来更改不同版本中的逻辑(仅在需要时),同时还重用旧版本的代码。在 20 个版本之后,你得到的是一个类可以有 20 层的层次结构。最旧的 10 个版本已被弃用(对公众不可见),但代码仍可供较新版本重用。

我们现在要做的是将这 10 个最旧的版本合并为一个(已弃用的最新版本)。这样我们代码库中的混乱就会减少。一种方法是通过 10 个版本并将自己的方法组合到一个类中,但是有没有一种以编程方式进行的方法?

谢谢

标签: phpoopinheritancerefactoringclass-hierarchy

解决方案


这可以通过迭代地应用下推方法来实现:

超类的行为仅与它的某些子类相关。

将其移至那些子类。

可以使用 IDE 完成除了这种重构之外的任何广告。例如,PhpStorm 可以帮助您提供下推成员功能。


推荐阅读