SOLID principles

SOLID is a common acronym in the software development world. It’s useful to remeber five best practices to design classes in a object oriented language.1

Initial Stands for Concept
SRP Single Responsability Principle A class should have only a single responsability.
OCP Open Closed Principle Software entities should be open for extension but closed for modification.
LSP Liskov Substitution Principle Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.
ISP Interface Segregation Principle Many client-specific interfaces are better than one general purpose-interface.
DIP Dependency Injection Principle One should depend upon abstractions, not concretions.