Warum befasst sich Abstract Factory mit Familien und Factory Method mit dem Generieren eines einzelnen Objekts?

Von dem, was ich gelesen habe, befasst sich das abstrakte Factory-Muster in der Regel mit der Erstellung mehrerer Objekte, die alle derselben Familie zugeordnet sind, und das Factory-Methodenmuster befasst sich mit der Erstellung eines einzelnen Objekts.

Betrachten Sie das folgende Beispiel, das diese Bedenken auf den Kopf stellt:

// Factory Method (base class) allowing for creation of families of objects
public class BasePizzaCreator{
    abstract ISauce CreateSauce();
    abstract IToppings CreateToppings();
    abstract ICrust CreateCrust();
}

// Abstract Factory (interface) defining contract to create a single object
public interface IPizzaFactory{
    abstract IPizza CreatePizza();
}

s ist offensichtlich, dass Siekönne benutze sie auf diese Weise - aber ist es eine Verletzung des Geistes der Muster? Wenn ja warum

Was ich hier wirklich verstehen möchte, ist Folgendes: Warum ist Abstract Factory der bessere Ansatz zum Erstellen von Familien verwandter Objekte und die Factory-Methode der bessere Ansatz zum Erstellen eines einzelnen Objekts?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage