Назад к вопросам
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
}
Здесь полиморфизм позволяет использовать разные фабрики и продукты через общий интерфейс.