# Фабричный метод Порождающий паттерн проектирования, который определяет общий интерфейс для создания объектов в суперклассе, позволяя подклассам изменять тип создаваемых объектов. Паттерн **Фабричный Метод** определяет интерфейс создания объекта, но позволяет субклассам выбрать создаваемый экземпляр. Таким образом, Фабричный Метод делегирует операцию создания экземпляра субклассам. ## Принципы - Код должен зависеть от абстракций, а не от конкретных классов ## Схемы ![scheme-1](scheme-1.png) ![scheme-2](scheme-2.png) ![scheme-3](scheme-3.png) ![scheme-4](scheme-4.png) ![scheme-5](scheme-5.png) ![scheme-6](scheme-6.png)