Sobes.tech
Junior — Middle
264

Оё метавонед шарҳ диҳед, ки паттерни усули фабрика чист ва барои чӣ истифода мешавад?

Ширкатҳо дар куҷо пурсиданд
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
}

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