In this chapter, we went through the concept of design patterns and how they can help us solve some of the commonly encountered problems in designing our applications. We then went through how to decide upon which design pattern to use, and if it is compulsory to choose one of the patterns that has already been defined. Moving further in the chapter, we explored some of the object-oriented capabilities of Python as a language, and also explored some examples of implementing abstract classes and metaclasses in Python, and how we can use them to build other classes and modify their behavior.
Equipped with the knowledge of object-oriented Python, we moved on to implement some of the common design patterns, such as the Singleton and Factory patterns in Python, and also explored the MVC pattern, learning about what problems they try to solve.
Now with the knowledge of design...