воскресенье, 3 января 2016 г.

Dependency Inversion

Dependency Inversion-один из принципов SOLID:
  • Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракции.
  • Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Для тех, кто только начинает знакомиться  с  Dependency Inversion, такое определение не понятно. Зато эта тема весьма популярна на собеседование. Попробую объяснить простым языком и легким примером "из жизни".

В проекте есть два класса, которые создают сообщение и отправляют его определенным адресатам.

    public class MessageToMainOffice
    {
        public void Send()
        {
            //создаем сообщение для главного офиса и отправляем на заданные адреса
        }
    }