Это не противоречие, однако они оба используются в разных обстоятельствах.
Вы с большей вероятностью будете использовать Creator на уровне домена и использовать инъекцию зависимостей или фабрики в свои уровни обслуживания приложений (службы регистрации, фабрики контроллеров, службы аутентификации и т. Д. В зависимости от вашей платформы) и уровни обслуживания домена / доступа к данным (Репозитории, картографы данных, шлюзы данных и т. Д.).
Это различие разъясняется Ларманом в статье «Применение UML и шаблонов» (где определены шаблоны / принципы GRASP), в которой говорится, что Создателю противопоказано в тех случаях, когда повторное использование переработанных экземпляров важно для производительности или решения относительно того, какой класс среди семью нужно создать. В этих случаях создание экземпляров лучше оставить в фабрике, абстрактной фабрике или DI.