SOLID - это Аббревиатура, которая обозначает пять основных принципов, которых должны придерживаться программисты.
- S - Single-Responsibility Principle - У каждого класса должна быть только одна обязанность. Например, работа со временем и работа с файловой системой, эти обязанности должны быть разделены по отдельным классам.
- O - Open-Closed Principle - Объекты должны быть открыты для расширения и закрыты для модификации.
- L - Liskov Substitution Principle - Каждый класс-наследник должен наследовать, без нарушения обратной совместимости с классом-родителем. Каждый класс-наследник, полностью должен заменять класс-родитель
- I - Interface Segregation Principle - Клиенты не должны принуждаться к реализации методов, которые они не используют, или клиентам не должны навязываться методы, котрые они не используют.
- D - Dependency Inversion Principle - Сущности должны зависить от абстракции, а не от конкретики. Это означает, что модули верхнего уровня не должны зависеть от модулей нижнего уровня. Абстракции не должны зависить от конкретики, конкретики должны зависет от абстракций.