Шаблон фабричного метода используется, когда • класс не может предвидеть класс объектов, которые он должен создать. • класс хочет, чтобы его подклассы указывали объекты, которые он создает. • классы делегируют ответственность одному из нескольких вспомогательных подклассов, и вы хотите локализовать сведения о том, какой вспомогательный подкласс является делегатом.
Шаблон метода фабрики полезен, если у вас есть только один конкретный создатель, потому что вы отделить реализацию продукта от его использования. Если вы добавите дополнительные продукты или измените реализацию продукта, это не повлияет на вашего Создателя (поскольку Создатель не тесно связан с каким-либо Конкретным продуктом).
Я думаю это видео объясняет, что оно действительно хорошее .