Chapter 5. Elegance with Design Patterns
In this chapter, we are going to learn some design patterns that will help us in writing better software, which is reusable and tidy. But, the biggest help is that they let developers think on an architectural level. They are solutions to recurring problems. While learning them is very helpful for compiled languages such as C and C++ because they are actually solutions to problems, in Python, developers often "just write code" without needing any design pattern due to the dynamism in the language and conciseness of code. This is largely true for developers whose first language is Python. My advice is to learn design patterns to be able to process information and design at an architectural level rather than function and classes.
In this chapter, we will cover the following topics:
- Observer pattern
- Strategy pattern
- Singleton pattern
- Template pattern
- Adaptor pattern
- Facade pattern
- Flyweight pattern
- Command pattern
- Abstract factory
- Registry...