Metoda wytwórcza () – kreacyjny wzorzec projektowy, którego celem jest dostarczenie interfejsu do tworzenia obiektów nieokreślonych jako powiązanych typów. Tworzeniem egzemplarzy zajmują się podklasy.

Przykład zastosowania Rozpatrzmy aplikację, której funkcjonalność może być rozszerzana za pomocą wtyczek. Może to być przeglądarka plików graficznych. Mnogość formatów graficznych sprawia, że jest prawie niemożliwe zaimplementowanie ich wszystkich naraz. Potrzebne więc jest uniwersalne rozwiązanie – takim rozwiązaniem jest system wtyczek do zapisywania i odczytywania plików graficznych. Metoda wytwórcza zwraca wskaźnik do obiektu klasy, który może manipulować obrazami danego formatu. Dzięki takiemu rozwiązaniu bezproblemowo możemy rozszerzać listę obsługiwanych formatów.

Struktura wzorca thumb|300px|Wzorzec metody fabrykującej w języku angielskim

We wzorcu występują dwie ogólne klasy bądź interfejsy definiujące pewien typ zasobów (Product) oraz sposób ich tworzenia (Creator, metoda factoryMethod()). Od nich wyprowadza się konkretne klasy zasobów (ConcreteProduct) wraz z tworzącymi je klasami wytwórczymi (ConcreteCreator), które dostarczają odpowiednią implementację metody factoryMethod().