com.javarush.test.level29.lesson15.big01.car задание 10

Задание 10.

Разберись с кодом в пакете car (машина).
10.1. Замена конструктора фабричным методом.
10.1.1. Объяви классы Truck (грузовик), Sedan (седан) и Cabriolet (кабриолет), унаследованные
от Car.
10.1.2. Добавь в них конструкторы, принимающие int numberOfPassengers.
10.1.3. Добавь фабричный статический метод Car create(int type, int numberOfPassengers) в
класс Car.
10.1.4. Измени область видимости конструктора класса Car.

Делал задание 10 из большой задачи 29 уровня.
Методом подобора нашел вариант который таки принял валидатор, но вот насколько я понимаю, смысл задачи был обучение приему — замена использования конструктора фабричным методом.
Но в варианте который принял валидатор наш фабричный метод нигде не используется, такой например

    public static Car create(int type, int numberOfPassengers) {
        if (type == TRUCK) return new Truck(numberOfPassengers);
        else if (type == SEDAN) return new Sedan(numberOfPassengers);
        else if (type == CABRIOLET) return new Cabriolet(numberOfPassengers);
        else return null;
    }


Как мне кажется фактически в этой задаче ничего мы и не заменинили, и как ипользовали public конструктор суперкласса, так и продолжили его использовать в следущих задачах только с модификатором доступа protected.
А логику которую мы вынесли в фабричный метод так нигде и не использовали.
Поправьте меня если я неправ.
  • ,

Руководство пользователя IntelliJ IDEA. Основы рефакторинга.

Основы рефакторинга

IntelliJ IDEA предлагает полный набор функций автоматизированного рефакторинга кода, который приводит к существенному 
росту производительности при правильном использовании. Эта статья научит вас, как это сделать.

  1. Выбор
    Прежде всего, вам даже не обязательно выделять нужный элемент кода перед рефакторингом. IntelliJ IDEA достаточно умна, чтобы понять, какое выражение вы собираетесь реорганизовать, и просто запрашивает подтверждение если возможны несколько вариантов.