Principles of Object Oriented Programming
Here are the quick short notes to remember object oriented programming.
Encapsulate what vares.
Code to the interface, not to the implementation
Favour composition over inheritance
Strive for loosely coupled designs between objects that interact.
Classes should be open for extension but closed for modifications.
Depend on abstractions. Do not depend on concrete classes.
A class should have only one reason to change.