Simple Factory (Prosta fabryka) nie jest przez wszystkich uważany za wzorzec projektowy. Jednak jest tak często używany, że warty odrobiny uwagi. Simple factory jest jednym z wzorców konstrukcyjnych, których zadaniem jest tworzenie obiektów. Wzorzec ten charakteryzuje się tym, że caly proces decyzyjny i konstrukcyjny jest w jednej metodzie. Dla przykładu mamy klasy kilku napojów: Kawa, Herbata, Wino, Piwo i Woda. Wszystkie implementują interface Napój. Klasa NapójFactory utworzony zgodnie z powyższym wzorcem może wyglądać tak:

Metoda createNapoj to właśnie simple factory. Tworzy nową klasę interfejsu Napoje na podstawie dostarczonego parametru. Nie jest to najlepszy sposób na przenoszenie parametrów, poniważ zwykła literówka może uczynić z naszego wina wodę :D. Dlatego też dobrym nawykiem jest korzystanie w takich przypadkach z Enum.

Wtedy nasza klasa fabrykująca może będzie wyglądać tak:

Teraz gdy potrzebujemy jakiś napój tworzymy go w ten sposób:

Gdy metodę createNapoj zrobimy statyczną to nie musimy tworzyć instancji klasy SimpleFactory aby stworzyć klasę typu Napoje
.