Design pattern là giải pháp tái sử dụng cho các vấn đề thiết kế phần mềm hay lặp lại — không phải code copy-paste, mà là khuôn mẫu để tổ chức lớp/đối tượng. Lợi ích: có từ vựng chung (nói "Observer" là hiểu ngay), tránh phát minh lại, thiết kế dễ mở rộng.
"Gang of Four" (GoF) phân 23 pattern kinh điển thành 3 nhóm:
- Creational (tạo đối tượng): Singleton, Factory Method, Abstract Factory, Builder, Prototype.
- Structural (ghép lớp/đối tượng): Adapter, Decorator, Facade, Proxy, Composite, Bridge, Flyweight.
- Behavioral (phân chia trách nhiệm & giao tiếp): Observer, Strategy, Command, State, Iterator, Template Method, Chain of Responsibility, Mediator, Visitor...
Lưu ý: pattern là công cụ, đừng lạm dụng — áp khi vấn đề thực sự khớp, tránh over-engineering.