Sobes.tech
Junior — Middle
269

Фабрика ыкмалынын паттерни эмне экенин жана ал эмне үчүн колдонулушу мүмкүн экенин түшүндүрө аласызбы?

Кайсыл жерде компаниялар сурады
AndersenAndersen
Grotem
Верме

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
}

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