Sobes.tech
Junior — Middle

Erklären Sie die wichtigsten Unterschiede zwischen den Mustern 'Fabrikmethode' und 'Abstrakte Fabrik'.

sobes.tech KI

Antwort von AI

Das Fabrikmuster (Factory Method) definiert eine Schnittstelle zur Erstellung eines Objekts, lässt jedoch Unterklassen entscheiden, welche Klasse instanziiert wird. Das heißt, die Erstellung eines konkreten Objekts wird an die Unterklassen delegiert. Es wird typischerweise verwendet, wenn es ein Produkt und mehrere Varianten seiner Implementierung gibt.

Abstrakte Fabrik (Abstract Factory) stellt eine Schnittstelle bereit, um Familien verwandter oder abhängiger Objekte zu erstellen, ohne ihre konkreten Klassen anzugeben. Es ist ein höherstufiges Muster, das mehrere Fabrikmethoden kombiniert, um verschiedene, aber verwandte Objekte zu erstellen.

Hauptunterschiede:

  • Fokus: Die Fabrikmethode erstellt ein Produkt, die abstrakte Fabrik eine Familie von Produkten.
  • Struktur: Die Fabrikmethode wird in der Regel durch Vererbung und Überschreibung der Erstellmethode implementiert, die abstrakte Fabrik durch Komposition und eine Reihe von Schnittstellen.
  • Verwendung: Die Fabrikmethode eignet sich, wenn Objekte desselben Typs mit Variationen erstellt werden sollen, die abstrakte Fabrik, wenn verwandte Objekte verschiedener Typen erstellt werden sollen, die zusammenarbeiten müssen.

Beispiel in Dart (Flutter) für die Fabrikmethode:

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();
}

Hier ist Dialog die Fabrikmethode, die je nach Plattform unterschiedliche Buttons erstellt.

Die abstrakte Fabrik wird die Erstellung mehrerer verwandter Produkte umfassen, z.B. Buttons und Checkboxen, die miteinander kompatibel sein müssen.