Python 3 Object-Oriented Programming, 4th ed. Chapter 12. Advanced Python design patterns. The Adapter pattern The Facade pattern Lazy initialization and the Flyweight pattern The Abstract Factory pattern The Composition pattern The Template pattern