Sobes.tech
Back to questions
Junior — Middle
207

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

Companies where asked
AndersenAndersen
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
}

Такой подход помогает изолировать код создания объектов и облегчает добавление новых типов без изменения существующего кода.