4.8. Eine Fabrikmethode deklarieren

Mit nur ein paar Veränderungen an Pizzeria sind wir von der Instantiierung der konkreten Klassen über ein Objekt-Handle zu einem Satz von Unterklassen übergegangen, die jetzt diese Verantwortung übernehmen. Sehen wir uns das aus der Nähe an:

public abstract class Pizzeria {

  public Pizza bestellePizza(String typ) {

    Pizza pizza = erstellePizza(typ);

    pizza.vorbereiten();
    pizza.backen();
    pizza.schneiden();
    pizza.verpacken();

    return pizza;
  }

  protected abstract Pizza erstellePizza(String element);
  // andere Methoden
}

Die Unterklassen von Pizzeria kümmern sich für uns in der Methode erstellePizza() um die Objekt-Instantiierung.

BerlinPizzeria

erstellePizza()()

MünchenPizzeria

erstellePizza()

Die ganze Verantwortung ...

Get Entwurfsmuster von Kopf bis Fubß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.