Паттерн "Фабричный Метод" определяет интерфейс создания объекта, но позволяет субклассам выбрать создаваемый экземпляр. Все фабричные паттерны обеспечивают слабую связанность за счет сокращения зависимости приложения от конкретных классов. Фабричный Метод основан на наследовании: создание объектов делегируется субклассам, реализующим фабричный метод для создания объектов. Задача Фабричного Метода - перемещение создания экземпляров в субклассы. *Принцип:* - По возможности использовать абстракции в коде.