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 O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.