Designpatterns

Factory Pattern

Das Factory Pattern kapselt die Objekterzeugung in einer zentralen Methode und fördert flexible, erweiterbare Softwarearchitektur.

Was ist das Factory Pattern?

Das Factory Pattern ist ein Entwurfsmuster, das dafür sorgt, dass Objekte nicht direkt mit new erzeugt werden, sondern über eine zentrale Methode (eine sogenannte Fabrikmethode).

Es „versteckt“ die Erstellung von Objekten und gibt dir flexiblen, sauberen Code, der leicht erweiterbar ist.

Warum braucht man das?

Stell dir vor, du hast viele verschiedene Objekttypen, z. B. Auto, Motorrad, LKW usw.
Wenn du überall im Code new Auto(), new Motorrad() schreibst, wird dein Code hart verdrahtet und schlecht wartbar.

Mit einer Fabrikklasse kannst du die Objekterstellung zentral steuern, z. B. anhand eines Strings, Typs oder Konfigurationswerts.

Vorteile des Factory Pattern

VorteilBedeutung
Zentrale ObjekterstellungNeue Objekttypen an einer Stelle verwalten
Einheitliche SchnittstelleDu brauchst dir keine Details zur Objekterzeugung merken
AustauschbarkeitDu kannst leicht auf andere Unterklassen umstellen
ErweiterbarkeitNeue Klassen hinzufügen ohne bestehende Stellen zu ändern

Beispiel: Fahrzeug-Fabrik

abstract class Fahrzeug {
    abstract void fahre();
}

class Auto extends Fahrzeug {
    @Override
    void fahre() {
        System.out.println("Auto fährt");
    }
}

class Motorrad extends Fahrzeug {
    @Override
    void fahre() {
        System.out.println("Motorrad fährt");
    }
}

Die Fabrik

class FahrzeugFabrik {
    static Fahrzeug erzeuge(String typ) {
        if (typ.equals("Auto")) return new Auto();
        if (typ.equals("Motorrad")) return new Motorrad();
        return null; // oder: throw new IllegalArgumentException()
    }
}

Verwendung

Fahrzeug f1 = FahrzeugFabrik.erzeuge("Auto");
Fahrzeug f2 = FahrzeugFabrik.erzeuge("Motorrad");

f1.fahre(); // Ausgabe: Auto fährt
f2.fahre(); // Ausgabe: Motorrad fährt
Der Vorteil: Du musst nicht wissen, wie Auto oder Motorrad genau aufgebaut ist – du bekommst einfach das passende Objekt geliefert.
Mit dem Factory Pattern bestellst du ein Objekt – wie in einer Pizzeria.
Du sagst nur, was du willst („Auto“), und die Fabrik liefert das fertige Produkt