Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подсказка
Это фрагмент из электронной книги «Архитектура микрослужб .NET для контейнеризованных приложений .NET», доступной в документации .NET или в виде бесплатного скачиваемого PDF-файла, который можно прочитать в автономном режиме.
Использование принципов SOLID и внедрения зависимостей
Принципы SOLID — это критически важные методы, используемые в любом современном и критически важном приложении, например разработке микрослужбы с использованием шаблонов DDD. SOLID — это акроним, который группирует пять основных принципов:
Принцип единой ответственности
Принцип открытый/закрытый
Принцип замены Лискова
Принцип разделения интерфейса
Принцип инверсии зависимостей
Подход SOLID больше связан с тем, как вы проектируете внутренние слои вашего приложения или микросервиса, и с разобщением зависимостей между ними. Он не связан с доменом, а с техническим дизайном приложения. Окончательный принцип, принцип инверсии зависимостей, позволяет отделить слой инфраструктуры от остальных слоев, что позволяет лучше разделить реализацию уровней DDD.
Внедрение зависимостей (DI) — один из способов реализации принципа инверсии зависимостей. Это метод достижения свободного взаимодействия между объектами и их зависимостями. Вместо того чтобы напрямую создавать экземпляры объектов-сотрудников или использовать статические ссылки (например, используя ключевое слово `new`), объекты, необходимые классу для выполнения своих действий, предоставляются ему (или "внедряются в" него). Чаще всего классы объявляют свои зависимости с помощью конструктора, позволяя им следовать принципу явных зависимостей. Внедрение зависимостей обычно основано на конкретных контейнерах инверсии управления (IoC). ASP.NET Core предоставляет простой встроенный контейнер IoC, но вы также можете использовать любимый контейнер IoC, например Autofac или Ninject.
Следуя принципам SOLID, ваши классы, как правило, будут небольшими, хорошо структурированными и легко тестируемыми. Как узнать, внедряется ли слишком много зависимостей в ваши классы? Если вы используете DI через конструктор, это будет легко обнаружить, просто взглянув на количество параметров для конструктора. Если существует слишком много зависимостей, это обычно указатель (запах кода), что ваш класс пытается сделать слишком много и, вероятно, нарушает Принцип Единственной Ответственности.
Для детального раскрытия темы SOLID потребуется отдельное руководство. Поэтому в этом руководстве требуется только минимальное знание этих тем.
Дополнительные ресурсы
SOLID: Основные принципы OOP
https://deviq.com/solid/Инверсия контейнеров элементов управления и шаблон внедрения зависимостей
https://martinfowler.com/articles/injection.htmlСтив Смит. Новое — Клей
https://ardalis.com/new-is-glue