Python 3 Object-Oriented Programming, 4th ed. Chapter 11. Common design patterns. The Decorator pattern The Observer pattern The Strategy pattern The Command pattern The State pattern The Singleton pattern