Для того, щоб система залишалася незалежною від різних типів об'єктів, патерн Factory Method використовує механізм поліморфізму - класи всіх кінцевих типів успадковують від одного абстрактного базового класу, призначеного для полиморфного використання. У цьому базовому класі визначається єдиний інтерфейс, через який користувач буде оперувати об'єктами кінцевих типів.
Для забезпечення щодо простого додавання в систему нових типів патерн Factory Method локалізує створення об'єктів конкретних типів в спеціальному класі-фабриці. Методи цього класу, за допомогою яких створюються об'єкти конкретних класів, називаються фабричними. Існують два різновиди паттерна Factory Method:
Узагальнений конструктор, коли в тому ж самому полиморфном базовому класі, від якого успадковують похідні класи всіх створюваних у системі типів, визначається статичний фабричний метод. Як параметр в цей метод повинен передаватися ідентифікатор типу створюваного об'єкта.
UML-діаграма класів паттерна Factory Method. узагальнений конструктор

Класичний варіант фабричного методу, коли інтерфейс фабричних методів оголошується в незалежному класі-фабриці, а їх реалізація визначається конкретними подклассами цього класу.