Solid is an acronym which stands for the five most important principle for object oriented programming.
These five principle together makes that an system is easier to maintain, easier to extend and creates a more sustainable logic layer.
S for Single Responsibility principle.
O for Open - Closed principle.
L for Liskov substitution principle.
I for Interface segregation principle.
D for Dependency inversion principle.
Single Responsibility Principle ( SRP )
A class should have a single responsibility.
Open - Closed Principle ( OCP )
A class should be open for extension but closed for modifications.
Liskov Substitution Principle ( LSP )
if S is a subtype of T, then objects of type T may be replaced with objects of type S
Interface Segregation Principle ( ISP )
A client should not be forced to implement interfaces they don't use.
Dependency Inversion Principle ( DIP )
High level modules should not depend on low level modules. Both should depend on abstractions and those abstractions should not depends on details.