Choosing the right pattern (or none) for a problem requires understanding the problem deeply, knowing the patterns and their trade-offs, and applying judgment to balance benefits against complexity. The goal is solving the problem well, not using patterns for their own sake.
Start with the problem, not the pattern
✓ UNDERSTAND THE PROBLEM first → what's the actual issue? (don't start by picking a pattern)
✓ Identify what you NEED → flexibility? decoupling? extensibility? simpler creation?
✓ Then ask: does a pattern address THIS problem well? (or is a simple solution better?)
→ problem-first, not pattern-first → avoid forcing patterns
