Неоднократно слышал про некий паттерн (или не паттерн, не уверен) SOLID. Что это такое и "с чем это едят"?
SOLID часто относят к паттернам, но ЭТО НЕ ТАК. SOLID это группа из 5 принципов проектирования кода.
S - single responsibility (у класса есть только 1 причина для изменения)
O - open/closed (открыто для расширения, закрыто для изменения)
L - Liskov substitution (вместо базового типа можно подставить подтип)
I - interface segregation (нет зависимости от неиспользуемых методов)
D - dependency inversion (верхний уровень не зависит от нижнего, но все зависят от абстракции)