Может ли данный пример служить примером реализации паттерна FactoryMethod
или он есть ошибочных по отношению именно к этому паттерну?
public class RentCar {
public static Car getRentCar(Object object) {
Car car = null;
if (object instanceof BmwCar) {
car = new BmwCar();
} else if (object instanceof PejouCar) {
car = new PejouCar();
}
return car;
}
}
Класс:
public abstract class Car {
public abstract int getMaxSpeed();
public abstract String getMark();
}
Импл:
public class BmwCar extends Car {
@Override
public int getMaxSpeed() {
return 120;
}
@Override
public String getMark() {
return "BMW";
}
}
public class PejouCar extends Car {
@Override
public int getMaxSpeed() {
return 80;
}
@Override
public String getMark() {
return "Pejou";
}
}
Странный получается фэктори метод - в текущей реализации для того, чтобы получить, например, экземпляр класса BmwCar, вы должны передать в метод getRentCar.... экземпляр класса BmwCar! В этом нет смысла. Так было бы лучше:
public static Car getRentCar(String carName) {
Car car = null;
if ("BMW".equals(carName)) {
car = new BmwCar();
} else if ("Peugeot".equals(carName)) {
car = new PeugeotCar();
}
return car; }
Апдейт после обсуждения в комментах: С чисто формальной точки зрения, реализация является верной, т.к. явным образом не указывается, экземпляр какого именно класса должен вернуться из метода
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть DAO который считывает файл и преобразует данные в объектТак же в объекте есть множество др
Всем приветНаписал два класса на языке Java с использованием библиотеки Java3D
Есть TreeView<String> и таблица TableView<Object>Хочу сделать так, чтобы по нажатию (мышкой) на один из TreeItem<String> менялись данные в таблице