Модулі верхнього рівня повинні залежати від модулів нижнього рівня. І ті, й інші мають залежати від абстракцій. Абстракції не повинні залежати від деталей. Деталі мають залежати від абстракцій.
Принципи SOLID
Ці п’ять правил розробки ПЗ задають траєкторію, за якою потрібно слідувати, коли пишеш програми, щоб їх простіше було масштабувати та підтримувати. Вони здобули популярність завдяки програмісту Роберту Мартіну.
I – Interface Segregation (Принцип поділу інтерфейсів)
Не слід ставити клієнт у залежність від методів, які не використовує.
L – Liskov Substitution (Принцип підстановки Барбари Лісков)
Якщо П є підтипом Т, будь-які об’єкти типу Т, присутні у програмі, можуть замінюватися об’єктами типу П без негативних наслідків для функціональності програми.
O – Open-Closed (Принцип відкритості-закритості)
Класи повинні бути відкриті для розширення, але закриті для модифікації.
S – Single Responsibility (Принцип єдиної відповідальності)
Кожен клас повинен відповідати тільки за одну операцію.