SOLID is acronym introduced by Robert C Martin, which stands for five basic principles of object oriented programming/design.
Single Responsibility Principle:
Every class should have a single responsibility, and that responsibility should be entirely encapsulated by the class.
Open Closed Principle:
Software entities (classes, modules) should be open for extension, but closed for modification.
Liskov Substitution Principle:
If S is a subtype of T, then objects of type T in a program may be replaced with objects of type S without altering any of the desirable properties of that program.
Interface Segregation Principle:
Split interfaces which are very large into smaller and more specific ones so that clients will only have to know about the methods that are of interest to them.
Dependency Inversion Principle:
Decouple high-level components from low-level components such that reuse with different low-level component implementations becomes possible.