2075 / Unity / 2D / 3D / Шаблони / SOLID / Dependency inversion principle
Принцип інверсії залежностей
Залежності всередині системи будуються на основі абстракцій, що не повинні залежати від деталей; навпаки, деталі мають залежати від абстракцій. Модулі вищих рівнів не мають залежати від модулів нижчих рівнів
Extenject Dependency Injection IOC
Приклад
Замовник хоче, щоб гра ще й вийшла на мобільних, а наш клас MovementHandler залізно прив'язаний до клавіатури. Тут ми втрачаємо гнучкість в архітектурі – порушуємо Dependency inversion principle
Ми маємо залежати від абстракцій, аби була можливість підставити інший код
Але за гнучкість ми платимо менш конкретним та читабельним кодом
Якщо ми точно знаємо, що нам потрібна гнучкість в цьому напрямку – тоді ми використовуємо цей принцип
