Eigenständiger BegriffMusterKapitel I · Domäne · Baustein 11 von 18

Factory

Eine Factory bündelt komplexe oder fachlich bedeutsame Erzeugung, ohne Zustandsänderungen nach der Erzeugung zu übernehmen.

  1. EingabenKunde, Positionen und Adresse.
  2. FactoryPrüft Vorbedingungen und erzeugt.
  3. AggregateStartet in gültigem Zustand.

Einordnung

Warum das wichtig ist

Gültige Domänenobjekte mit expliziten Erzeugungsbedingungen herstellen.

Erzeugung neuer Entities oder Aggregate und Prüfung ihrer Startbedingungen.

Shop-Beispiel · Zuordnung

Factory und direkte Konstruktion

Die Bestellfactory erstellt das Aggregat; das Repository speichert es. Beide gehören zum Bestellmodul.

So liest du das Bild

  1. Eingaben Bestelldaten
  2. Factory Konstruktion
  3. Aggregate gültiger Anfang
Factory und direkte Konstruktion
KriteriumSituationGeeignete Form
Einfache WerteKonstruktorWenige Regeln
Aggregate mit RegelnFactoryGeprüfte Startbedingungen
Die Matrix hilft, Aufwand und Erzeugungsverantwortung einzuordnen.

Nutzen & Grenzen

Hilft, wenn

  • Die Erzeugung bündelt mehrere fachliche Vorbedingungen oder setzt ein Aggregat aus mehreren gültigen Bestandteilen zusammen.
  • Aufrufer sollen ein vollständig gültiges Objekt erhalten, ohne interne Konstruktionsschritte oder konkrete Implementierung kennen zu müssen.

Grenzen

  • Bei einem Objekt mit wenigen klaren Pflichtwerten bleibt ein Konstruktor leichter verständlich und wartbar.
  • Eine Factory entscheidet über den gültigen Anfangszustand; Persistenz, Wiederauffinden und spätere Änderungen gehören zu anderen Bausteinen.

In der Praxis

  1. Bestimme, welche Vorbedingungen ein neues Objekt beim Entstehen erfüllen muss, und formuliere diese als fachliche Erzeugungsregel statt als Sammlung technischer Setter.
  2. Nutze eine Factory, wenn ein Aggregat aus mehreren Objekten entsteht oder die konkrete Implementierung für Aufrufer verborgen bleiben soll. Bei einfacher, eindeutiger Erzeugung genügt ein Konstruktor.
  3. Gib ein vollständig gültiges Objekt zurück und teste ungültige Eingaben, Grenzwerte sowie jede fachliche Startbedingung. Halte Speicherzugriff und spätere Zustandsänderungen außerhalb des Erzeugungsvertrags.
Ausführliche Erklärung lesen

Die Factory kann ein einzelnes Objekt oder ein zusammengesetztes Aggregat erzeugen. Ihre Aufgabe endet nach der gültigen Konstruktion; Persistenz und spätere Zustandsänderungen liegen bei anderen Bausteinen.

Eine Factory ist sinnvoll, wenn Vorbedingungen oder Zusammensetzung erklärungsbedürftig sind. Ein einfacher Konstruktor bleibt die bessere Wahl, wenn er dieselbe Gültigkeit direkt und lesbar sicherstellt.

Die Factory erzeugt das Aggregate mit gültigem Anfangszustand; ein Repository übernimmt anschließend den Speicherzugriff.

Selbst prüfen

Teste dich in drei Stufen

  1. AblesenIm Bild nachsehen

    Welche Eingangsdaten nutzt die Bestellfactory?

    Lösung mit Begründung ansehen

    Kunde, Positionen und bestätigte Lieferadresse.

  2. AnwendenAuf eine neue Lage übertragen

    Ein einfacher unveränderlicher Wert braucht keine Vorbedingungen. Welche Erzeugung reicht?

    Lösung mit Begründung ansehen

    Ein direkter Konstruktor.

  3. BewertenEine Alternative abwägen

    Wann schafft eine Factory einen klaren fachlichen Nutzen?

    Lösung mit Begründung ansehen

    Wenn sie mehrere gültige Startbedingungen bündelt oder eine komplexe Erzeugung verständlich benennt.

Vertiefen

Diese Bausteine führen die Gedanken dieser Seite weiter.

Weiter im Lernpfad

Als Nächstes in Domänenmodellierung & DDD: Repository.