Суть паттерна Фабричный метод - это порождающий паттерн проектирования, который определяет общий интерфейс для создания объектов в супер-классе, позволяя подклассам изменять тип создаваемых объектов. Паттерн "Фабричный метод" предлогает создавать объекты не напрямую, используя оператор new, а через вызов особого фабричного метода. Не пугайтесь, объекты все равно будут создаваться при помощи new, но делать это будет фабричный метод. На первый взгляд, это может показать бессмысленным: мы просто переместили вызов конструктора из одного конца программы в другой. Но теперь вы сможете переопределить фабричный метод в подклассе, чтобы изменить тип создаваемого продукта. Чтобы эта система заработала, все возвращаемые объекты должны иметь общий интерфейс. Подклассы смогут производить объекты различных классов, следующих одному и тому же интерфейсу. Применимость Когда заранее неизвестны типы и зависимости объектов, с которыми должен работать ваш код. Фабричный метод отделяет код производства пр