Stop Memorizing Design Patterns: Use This Decision Tree Instead