重构:删除超类的名称?

时间:2013-04-08 13:35:26

标签: class refactoring

对于学校作业,我们收到了一个Java项目,我们被要求尽可能重构,只要它对代码质量有好处。

我做过的一件事就是删除课程。有一个类“Cab extends ImageIcon”和一个类“Train extends Cab”。但这种继承没有任何具体用途(即“火车”类是唯一一个延伸驾驶室的)。所以最终,我最终只得到了“Train extends ImageIcon”。

现在,在文档中,我们必须命名我们的重构。我们有一个列表(我将在这篇帖子的底部放置),我最接近的是“下推方法”和“下推字段”。但这并不涉及超类的构造函数体。

清单:

  1. 拉起字段
  2. 拉起方法
  3. 拉起构造函数体
  4. 下推方法
  5. 按下字段
  6. 提取子类
  7. 提取超类
  8. 提取界面
  9. 折叠层次结构
  10. 表单模板方法
  11. 将继承替换为委派
  12. 将委托替换为继承
  13. 我希望你们中的任何人都可以帮助我。如果我的重构是一个糟糕的选择,请告诉我!我在这类事情上相当新鲜。

    提前致谢!

1 个答案:

答案 0 :(得分:1)

对我来说,听起来你已经崩溃了层次结构。

以前的层次结构是

ImageIcon
    ^
    |
   Cab
    ^
    |
  Train

你已经把它变成了:

ImageIcon
    ^
    |
  Train

你有点将Cab类和Train类合并为一个新的Train类,这使得层次结构崩溃。