Расскажите про принципы SOLID.
Коротко все пять
- S — одна причина для изменения.
- O — расширяем новым кодом, не правим старый.
- L — подтип не ломает контракт базового типа.
- I — узкие протоколы, клиент не зависит от лишнего.
- D — зависим от абстракций, которыми владеет верхний уровень.
Обзор с примером на каждый принцип — в предыдущем вопросе. Здесь — глубже про два, которые спрашивают чаще всего: SRP и DIP, потому что именно они определяют, тестируем ли ваш код.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep