Sobes.tech
Back to questions
Junior — Middle
65

Можно ли реализовать фабричный метод для создания объекта интерфейса?

Companies where asked
m4bank

Answer from AI

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. Это классический пример фабричного метода для интерфейса.