2013-04-08 2 views
0

Для школьного задания мы получили проект Java, и нас попросили рефакторировать как можно больше, если это хорошо для качества кода.Рефакторинг: название удаления суперкласса?

Одна из вещей, которые я сделал, - это удаление класса. Был класс «Cab extends ImageIcon», а класс «Train extends Cab». Но это наследование не имело какого-либо конкретного использования (т. Е. Класс «Поезд» был единственным, расширяющим Кабину). Так что в итоге у меня получилось только «Train extends ImageIcon».

Теперь, в документации, мы должны назвать наши рефакторинги. У нас есть список (который я поставил в нижней части этого сообщения), и ближайший я пришел, это «Push down method» и «Push down field». Но это не касалось тела конструктора суперкласса.

Список:

  1. Подтяните поле
  2. Подтяните метод
  3. Подтяните конструктор тела
  4. Надавите метод
  5. Надавите поле
  6. Extract подкласс
  7. Extract суперкласс
  8. Extract интерфейс
  9. Collapse иерархия
  10. шаблонный метод Form
  11. Заменить наследство с делегацией
  12. Заменить делегацию с наследованием

Я надеюсь, что любой из вас может помочь мне. Если бы мой рефакторинг был плохим выбором, пожалуйста, скажите мне! Я довольно новичок в подобных вещах.

Заранее благодарен!

ответ

1

Мне кажется, что вы разрушили иерархию.

Иерархия раньше

ImageIcon 
    ^
    | 
    Cab 
    ^
    | 
    Train 

А вы превратили его в:

ImageIcon 
    ^
    | 
    Train 

Вы своего рода объединены класс Cab и класс поезда в новый поезд класса, привело к краху иерархии.

+0

Звучит логично для меня. Я полностью пропустил смысл слова «коллапс», вероятно, потому что я голландский :-), но я думаю, что это все. Большое спасибо! –

Смежные вопросы