While the principles of SOLID programming are great guidelines to follow, very few systems that you come across will actually implement them throughout the application. This is especially true if you inherit a system and that system has been in production for a number of years.
I will admit that I have come across applications designed with SOLID in mind. These were really easy to work on and the bar is set high for other developers in a team to maintain the same level of code quality.
Peer code reviews and a thorough understanding of SOLID principles by every developer on the team ensure that the same level of code is maintained.
This chapter has had a lot going on. Apart from laying the foundation for a really nice Cricket Score Tracking app, we have had a look at what OOP really means.
We had a look at abstraction and the difference between abstraction and encapsulation...