Назад к вопросам
Junior — Middle
73
Можете объяснить концепцию абстрактной фабрики и её назначение в паттернах проектирования?
Компании, где спрашивали
Мидлэнд
Леди и джентельмен сити
Ответ от нейросети
sobes.tech AI
Абстрактная фабрика — это порождающий паттерн проектирования, который предоставляет интерфейс для создания семейств взаимосвязанных или взаимозависимых объектов без указания их конкретных классов.
Назначение паттерна — обеспечить создание объектов, которые должны работать вместе, скрывая детали их конкретной реализации. Это удобно, когда система должна быть независимой от способа создания, композиции и представления продуктов.
Пример: в iOS приложении можно использовать абстрактную фабрику для создания UI-компонентов, которые выглядят по-разному на iOS и macOS, но имеют одинаковый интерфейс.
protocol Button {
func render()
}
class iOSButton: Button {
func render() {
print("Render iOS style button")
}
}
class MacOSButton: Button {
func render() {
print("Render macOS style button")
}
}
protocol UIFactory {
func createButton() -> Button
}
class iOSFactory: UIFactory {
func createButton() -> Button {
return iOSButton()
}
}
class MacOSFactory: UIFactory {
func createButton() -> Button {
return MacOSButton()
}
}
// Использование
let factory: UIFactory = iOSFactory()
let button = factory.createButton()
button.render() // Render iOS style button