Назад к вопросам
Junior — Middle
66
Можно ли реализовать фабричный метод для создания объекта интерфейса?
Компании, где спрашивали
m4bank
Ответ от нейросети
sobes.tech AI
Да, фабричный метод можно использовать для создания объектов интерфейса. В Java и Android интерфейс сам по себе не может быть инстанцирован, но фабричный метод может возвращать конкретную реализацию этого интерфейса.
Например, у вас есть интерфейс Animal и несколько классов, реализующих его:
interface Animal {
void makeSound();
}
class Dog implements Animal {
public void makeSound() {
System.out.println("Woof");
}
}
class Cat implements Animal {
public void makeSound() {
System.out.println("Meow");
}
}
class AnimalFactory {
public static Animal createAnimal(String type) {
if (type.equals("dog")) {
return new Dog();
} else if (type.equals("cat")) {
return new Cat();
} else {
throw new IllegalArgumentException("Unknown animal type");
}
}
}
Таким образом, вызывая AnimalFactory.createAnimal("dog"), вы получаете объект, реализующий интерфейс Animal. Это классический пример фабричного метода для интерфейса.