Условие
Какой принцип вы соблюдаете при проектировании архитектуры продукта?
- Принцип единственной ответственности
- Принцип открытости/закрытости
- Принцип инверсии зависимостей
- Все вышеперечисленное ✓
Решение
Все вышеперечисленное. Это три принципа из набора SOLID — все они обязательны при проектировании здоровой архитектуры. Они не взаимоисключающие, а дополняющие: SRP отвечает за «один компонент — одна причина измениться», OCP — за расширяемость без правок старого кода, DIP — за развязку модулей через абстракции.
Почему остальные не подходят по отдельности:
- Только SRP — без OCP/DIP получится монолитный код, в который страшно вносить изменения.
- Только OCP — без SRP компоненты раздуваются и теряют смысл «расширяемости».
- Только DIP — без SRP и OCP инверсия зависимостей сама по себе не спасает от хрупкого дизайна.
В реальной разработке SOLID применяются совместно, плюс добавляются LSP и ISP — но в данном вопросе перечислены именно три, и правильный ответ — «все».
Эталонный ответ
Все вышеперечисленное.