When to activate: design patterns in Python, dependency injection, factory pattern, observer, command, strategy