An extension of the program to an interface principle is what has been coined as the SOLID design principles, which are based on the ideas of Robert Martin. This is an acronym for five different principles, as detailed in the following:
- Single responsibility
- Open-closed
- Liskov substitution
- Interface segregation
- Dependency inversion
The SOLID design principles deserve a mention whenever object-oriented programming is discussed. Let's review each one briefly.