Wybór odpowiedniego pattern'u (lub jego braku) dla problemu wymaga głębokiego zrozumienia problemu, znajomości pattern'ów i ich kompromisów oraz zastosowania osądu, aby zbalansować korzyści wobec złożoności. Celem jest dobrze rozwiązać problem, nie używać pattern'ów dla nich samych.
Zacznij od problemu, nie od pattern'u
✓ 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
