SOLID represents 5 principles of object-oriented programming: Single responsibility, Open-closed, Liskov Substitution, Interface Segregation and Dependency Inversion.
These principles is to solve the main problems of a bad architecture:
- Fragility: Unable to change.
- Immobility: Unable to reuse, because of tightly coupled dependencies.
- Rigidity: Single change affects several parts of the project.