Может ли данный пример служить примером реализации паттерна 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; }
Апдейт после обсуждения в комментах: С чисто формальной точки зрения, реализация является верной, т.к. явным образом не указывается, экземпляр какого именно класса должен вернуться из метода
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть DAO который считывает файл и преобразует данные в объектТак же в объекте есть множество др
Всем приветНаписал два класса на языке Java с использованием библиотеки Java3D
Есть TreeView<String> и таблица TableView<Object>Хочу сделать так, чтобы по нажатию (мышкой) на один из TreeItem<String> менялись данные в таблице