W programowaniu komputerowym fabryka to obiekt służący do tworzenia innych obiektów. Obiekty w tym przypadku odnoszą się do wartości, funkcji lub struktur danych używanych w kodzie. Wzorzec fabryki to wzorzec projektowy, który opiera się na fabrykach w celu tworzenia obiektów, a nie bezpośredniego tworzenia obiektów. Pozwala to na łatwą zmianę kodu i zachowanie elastyczności. Jest szeroko stosowany w programowaniu komputerowym zorientowanym obiektowo, które wykorzystuje obiekty do budowania programów i aplikacji.
Fabryka ma metodę na każdy rodzaj obiektu, który może stworzyć. Metoda jest zasadniczo wzorem. Składa się z zestawu instrukcji, zwanego podprogramem, który pobiera parametry zwykle dostarczane przez użytkownika i generuje określony obiekt. Większość z nich odbywa się za kulisami, a użytkownik lub klient nic o tym nie wiedzą.
Używając wzorca fabryki, program współdziała ze wspólnym interfejsem, a nie bezpośrednio komunikuje się z klasami. Klasa służy jako szablon do tworzenia obiektów. Każdy obiekt danej klasy ma to samo zachowanie i podstawowe atrybuty. Klasy można dalej podzielić na podklasy, z których każda dziedziczy niektóre atrybuty klasy, do której należy. Obiekt określonej klasy jest nazywany instancją tej klasy.
Jeśli na przykład użytkownik chciałby, aby program utworzył kwadrat w programie lub systemie operacyjnym, który używa wzorca fabryki, program powiadomi fabrykę, że użytkownik potrzebuje obiektu, który ma cztery boki równej długości i cztery kąty proste. Fabryka powiadomi metodę kształtu, że kształt jest potrzebny. Może przekazać niektóre parametry kwadratu, takie jak obszar, który użytkownik chciałby, aby kwadrat obejmował.
Podklasy decydowałyby o tym, która klasa powinna zostać użyta. Instancja kwadratu klas zostanie zwrócona do fabryki, która przekaże ją programowi, który jako pierwszy go zażądał. Użytkownik widział tylko, że informacje zostały wysłane do fabryki i zwrócone przez fabrykę. Nie widać wnętrza fabryki.
Zaletą stosowania wzorca fabrycznego jest to, że umożliwia łatwą zmianę programu. Nowe typy można dodawać do wzorca fabryki, po prostu modyfikując mały fragment kodu klienta, zwykle nie więcej niż jeden wiersz. Inne wzorce programowania wymagają od programisty zmiany kodu w każdej lokalizacji, w której tworzony jest obiekt.