Metoda wytwórcza należy do kreacyjnych wzorców projektowych. Jest ona w gruncie rzeczy uproszczeniem wzorca projektowego budownczy. Istnieje tutaj jeden wspólny interfejs przypisany dla danej grupy klas opisujących konkretne obiekty. Istotną rolę odgrywa klasa fabryki obiektów, która zawiera statyczną metodę, wewnątrz której względem podanego parametru tworzony jest nowy obiekt i zwracany jego interfejs.
Przykładowy diagram UML wzorca metoda wytwórcza
Jak widać na poniższym diagramie UML klasa TankFactory zawiera metodę statyczną buildTank, która jako jedyny argument pobiera wartość typu Tank::TankType wbudowanego w interfejs iTank. W zależności od ustawienia tegoż parametru tworzony jest obiekt klasy: A1M1_Abrams_tank lub T34_tank a następnie zwracany interfejs iTank*.
Przykładowa implementacja wzorca metoda wytwórcza
Przykład implementacji z powyższego diagramu UML napisanej w języki C++: