Joseph Dzeranov

Software Developer

  • Олимпиадное программирование
  • С#
  • iOS
  • Внедрение зависимостей
  • Контакты

DI containers

Антипаттерны внедрения зависимостей. Локатор сервисов

21.04.2018 / Leave a Comment

Главной задачей Локатора сервисов является предоставление экземпляров сервисов по запросам пользователей. Consumer использует интерфейс IService и запрашивает экземпляр у Локатора сервисов, который возвращает экземпляр той конкретной реализации, на возврат которой он сконфигурирован. Если рассматривать только статическую структуру классов, контейнеры внедрения зависимостей покажутся очень похожими на локаторы сервисов. Разница между ними очень мала и заключается не … [Read more…]

Posted in: Внедрение зависимостей Tagged: .Net, C#, Dependency Injection, DI, DI containers, DI контейнеры, IoC, антипаттерны внедрение зависимостей, Внедрение зависимостей

Антипаттерны внедрения зависимостей. Ограниченное конструирование

14.04.2018 / Leave a Comment

Наибольшей проблемой при правильной реализации внедрения свойств является перемещение всех классов, имеющих зависимости, в корень компоновки. Распространенная ошибка — требование, чтобы все зависимости имели конструктор с определенной сигнатурой. Это вытекает из желания обеспечить динамическое связывание, чтобы зависимости можно было бы определять во внешнем файле конфигурации и, следовательно, изменять без перекомпиляции приложения. 1 2 3 4 … [Read more…]

Posted in: Внедрение зависимостей Tagged: .Net, C#, Dependency Injection, DI containers, DI контейнеры, DI паттерны, Внедрение зависимостей

Окружающий контекст (Ambient Context)

31.03.2018 / 1 Comment

Как можем мы сделать зависимость доступной в каждом модуле без включения в каждый API компонента сквозных аспектов приложения? «Окружающий контекст» доступен любому потребителю через статическое свойство или метод. Потребляющий класс может использовать его следующим образом: 1 2 3 4 public string GetMessage() { return SomeContext.Current.SomeValue; }public string GetMessage() { return SomeContext.Current.SomeValue; } Чтобы быть полезным … [Read more…]

Posted in: Внедрение зависимостей Tagged: .Net, Ambient Context, C#, Dependency Injection, DI, DI containers, DI контейнеры, DI паттерны, IoC

Внедрение через метод (Method Injection)

28.03.2018 / 1 Comment

Как можно внедрить зависимости в класс, если они различны для каждой операции? Путем передачи в качестве параметра метода. Если при каждом вызове метода используется другая зависимость, вы можете передать ее через параметр метода. Как это работает Вызывающая сторона передает зависимость как параметр метода при каждом его вызове. Эта процедура не сложнее, чем сигнатура представленного ниже … [Read more…]

Posted in: Внедрение зависимостей Tagged: .Net, C#, DI, DI containers, DI контейнеры, DI паттерны, IoC, Method Injection, Внедрение зависимостей, Внедрение через метод

Внедрение через свойства (Property Injection)

25.03.2018 / 1 Comment

Продолжаем разбираться с внедрениями зависимостей в .Net, так как данная тема является одним из обязательных к изучению для написания качественного, гибкого к изменениям и тестируемого кода. Сегодня разберем внедрение через свойство или Property Injection. Итак, поехали! Назначение Разорвать жесткую связь между классом и его необязательными зависимостями. Описание Как можно разрешить внедрение зависимостей как опцию в … [Read more…]

Posted in: Внедрение зависимостей Tagged: .Net, C#, Dependency Injection, DI, DI containers, DI контейнеры, DI паттерны, IoC, Внедрение зависимостей

Архивы

  • Апрель 2018
  • Март 2018
  • Февраль 2018
  • Январь 2018
  • Декабрь 2017
  • Ноябрь 2017
  • Октябрь 2017
  • Сентябрь 2017
  • Август 2017
  • Июль 2017

Copyright © 2018 Joseph Dzeranov.

Me WordPress Theme by themehall.com

Перейти к верхней панели
  • О WordPress
    • WordPress.org
    • Документация
    • Форумы поддержки
    • Обратная связь
  • Войти
  • Зарегистрироваться