What are the five SOLID principles?
What does The Single Responsibility principle say?
A class should have one and only one reason to change, meaning that a class should only have one job.
What does the Open-closed principle say?
Objects or entities should be open for extension, but closed for modification.
You should able to add new features to the object without breaking it.
We should not introduce breaking changes to existing functionality
What does Liskov substitution principle say?
a subclass should override the parent class methods in a way that does not break functionality from a client’s point of view