Sobes.tech
Назад к вопросам
Junior — Middle
70

Какой принцип ООП является необходимым для реализации паттерна абстрактная фабрика?

Компании, где спрашивали
Movavi

Ответ от нейросети

sobes.tech AI

Для реализации паттерна «абстрактная фабрика» необходим принцип ООП — полиморфизм. Абстрактная фабрика определяет интерфейс для создания семейств связанных объектов без указания их конкретных классов. Полиморфизм позволяет работать с разными конкретными фабриками через единый интерфейс, что обеспечивает гибкость и расширяемость кода.

Пример на Kotlin (Android):

// Интерфейс продукта
interface Button {
    fun click()
}

// Конкретные продукты
class AndroidButton : Button {
    override fun click() = println("Android button clicked")
}

class IOSButton : Button {
    override fun click() = println("iOS button clicked")
}

// Абстрактная фабрика
interface GUIFactory {
    fun createButton(): Button
}

// Конкретные фабрики
class AndroidFactory : GUIFactory {
    override fun createButton() = AndroidButton()
}

class IOSFactory : GUIFactory {
    override fun createButton() = IOSButton()
}

// Использование
fun main() {
    val factory: GUIFactory = AndroidFactory()
    val button = factory.createButton()
    button.click()  // Выведет: Android button clicked
}

Здесь полиморфизм позволяет использовать разные фабрики и продукты через общий интерфейс.