Pytanie:

Jaka jest różnica pomiędzy tymi wzorcami?

Odpowiedź:

We wzorcu Factory Method wykorzystywane jest dziedziczenie. Klasa dziedzicząca ma za zadanie nadpisać metodę fabrykującą w odpowiedni dla siebie sposób. We wzorcu Abstract Factory tworzenie obiektów jest wydelegowane do klasy fabrykującej.
I teraz pytanie czym jest metoda newInstance()w fabryce? Czy jest to metoda fabrykująca czy też metoda zwykła metoda? Otóż zgodnie z założeniami obu wzorców jest to zwykła metoda. Dlaczego? Ponieważ metoda ta nie jest przesłaniana przez podklasę.