Design pattern có giá trị khi chúng giải quyết một vấn đề thực mà bạn đang gặp — nhưng ép dùng chúng ở nơi không phù hợp gây ra over-engineering. Sự phán đoán tốt về khi nào (và khi nào không) dùng pattern cũng quan trọng như việc biết các pattern.
Dùng pattern khi chúng phù hợp với vấn đề thực
✓ Khi bạn có một vấn đề mà pattern được THIẾT KẾ để giải quyết (nhận ra tình huống)
✓ Khi pattern thực sự làm code tốt hơn (linh hoạt hơn, dễ bảo trì hơn, rõ ràng hơn)
✓ Khi cấu trúc thêm vào được BIỆN MINH bởi nhu cầu thực (sự linh hoạt bạn sẽ thực sự dùng)
✓ Khi nó cải thiện giao tiếp (một pattern nổi tiếng mà người khác sẽ nhận ra)
→ pattern là CÔNG CỤ cho các vấn đề cụ thể → áp dụng chúng cho đúng vấn đề
