Возьмите создателя против инъекции зависимости

Является ли GRASP Creator полным противоречием с инъекцией зависимостей?

Если это не так, пожалуйста, объясните, почему.

1 ответ

Решение

Это не противоречие, однако они оба используются в разных обстоятельствах.

Вы с большей вероятностью будете использовать Creator на уровне домена и использовать внедрение зависимостей или фабрики на своих уровнях обслуживания приложений (служба журналов, фабрики контроллеров, службы аутентификации и т. Д. В зависимости от вашей платформы) и уровни обслуживания домена / доступа к данным (репозитории, Картографы данных, шлюзы данных и т. Д.).

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

Другие вопросы по тегам