Sobes.tech
Junior — Middle

Kannst du ein Beispiel für die Implementierung des Factory Method Patterns im Code geben?

sobes.tech KI

Antwort von AI

Das Fabrikmuster ermöglicht die Erstellung von Objekten, ohne die konkrete Klasse des zu erstellenden Objekts anzugeben. In Flutter ist dies praktisch, um Widgets mit unterschiedlicher Logik zu erstellen.

Beispielimplementierung in Dart:

abstract class Button {
  void render();
}

class AndroidButton implements Button {
  @override
  void render() {
    print('Android-Style-Button rendern');
  }
}

class IOSButton implements Button {
  @override
  void render() {
    print('iOS-Style-Button rendern');
  }
}

abstract class Dialog {
  Button createButton();

  void render() {
    Button button = createButton();
    button.render();
  }
}

class AndroidDialog extends Dialog {
  @override
  Button createButton() => AndroidButton();
}

class IOSDialog extends Dialog {
  @override
  Button createButton() => IOSButton();
}

void main() {
  Dialog dialog;

  // Plattformabhängig den benötigten Dialog erstellen
  bool isAndroid = true;
  if (isAndroid) {
    dialog = AndroidDialog();
  } else {
    dialog = IOSDialog();
  }

  dialog.render();
}

In diesem Beispiel ermöglicht die Fabrikmethode createButton den Unterklassen, Objekte verschiedener Button-Typen zu erstellen, und der Client-Code arbeitet mit Abstraktionen.