Back to questions
Andersen
Junior — Middle
207
Можете объяснить, что такое паттерн фабричный метод и для чего он применяется?
Companies where asked
Grotem
Верме
Answer from AI
sobes.tech AI
Паттерн "Фабричный метод" (Factory Method) — это порождающий шаблон проектирования, который определяет интерфейс для создания объекта, но позволяет подклассам решать, какой класс создавать. То есть создание объектов делегируется подклассам, что обеспечивает гибкость и расширяемость.
В Flutter и Dart этот паттерн часто используется, когда нужно создавать разные виджеты или объекты с общим интерфейсом, но конкретная реализация выбирается динамически.
Пример:
abstract class Button {
void render();
}
class AndroidButton implements Button {
@override
void render() => print('Android Button');
}
class IOSButton implements Button {
@override
void render() => print('iOS Button');
}
abstract class Dialog {
Button createButton();
void render() {
var button = createButton();
button.render();
}
}
class AndroidDialog extends Dialog {
@override
Button createButton() => AndroidButton();
}
class IOSDialog extends Dialog {
@override
Button createButton() => IOSButton();
}
void main() {
Dialog dialog = AndroidDialog();
dialog.render(); // Выведет: Android Button
dialog = IOSDialog();
dialog.render(); // Выведет: iOS Button
}
Такой подход помогает изолировать код создания объектов и облегчает добавление новых типов без изменения существующего кода.