ВВЕДЕНИЕ В ПРИНЦИПЫ SOLID НА ПРИМЕРЕ С#. ЧАСТЬ 5 - DIP

Принцип инверсии зависимостей

Данный принцип говорит о том, что объекты верхнего уровня не должны зависеть от объектов нижнего уровня. Оба должны зависеть от абстракций.

Чтобы понять данный принцип разберем его на контрпримере. Допустим у нас есть класс, который отвечает за отправку посылок.

ВВЕДЕНИЕ В ПРИНЦИПЫ SOLID НА ПРИМЕРЕ С#. ЧАСТЬ 5 - DIP

Вышеописанный код имеет серьезный недостаток - он напрямую связан с классом MailPackage, если нам понадобиться добавить отправку на пункт выдачи необходимо будет вновь создать переменную и метод

ВВЕДЕНИЕ В ПРИНЦИПЫ SOLID НА ПРИМЕРЕ С#. ЧАСТЬ 5 - DIP

Данный подход плох тем, что при добавлении новых способов доставки класс SendPackege будет постоянно меняться и разрастаться. К тому же придется инициализировать ненужные способы доставки, что очень неудобно. Чтобы исправить сложившуюся ситуацию необходимо разработать интерфейс, который будет содержать логику отправки посылок. Исправленный код выглядит следующим образом:

ВВЕДЕНИЕ В ПРИНЦИПЫ SOLID НА ПРИМЕРЕ С#. ЧАСТЬ 5 - DIP

Заключение

Таким образом, инверсия зависимостей позволяет сделать код гибким и читаемым, а также облегчает разработку.

Список использованных источников

  • Принципы SOLID. Принцип единственной обязанности. URL: https://metanit.com/sharp/patterns/5.1.php
  • S.O.L.I.D. Principles of Object-Oriented Programming in C#. URL: https://www.educative.io/blog/solid-principles-oop-c-sharp
  • Принципы SOLID в C#. URL: https://professorweb.ru/my/it/blog/net/solid.php
  • Опасность нарушения принципов SOLID в C#. URL: https://learn.microsoft.com/ru-ru/archive/msdn-magazine/2014/may/csharp-best-practices-dangers-of-violating-solid-principles-in-csharp
22
Начать дискуссию