Who ever as a developer did not come across a code full of IF's and started having to debug the code mentally, wondering, what could happen when the break-point went into this or that if or else, or simply wrote a method full of IF's which in that moment made total sense to you, but after a few days or weeks without touching in that code, had to return to make a change ... and wondered what I was doing here? Took a longer time to understand your own code? Often for the simplicity of writing codes in a procedural way, we faced with these situations, but concepts of OOP ( Object-oriented programming ) have emerged to facilitate the development of software. And we must make use of these concepts to write software that can be updated without the needs to change something that already is working, beyond it, we should to make extensible code and as important as develop, we must create testable code. In many cases we can use OOP concepts to abstract procedural logic into...