
Design pattern là các giải pháp đã được các chuyên gia thiết kế ra và đã được kiểm chứng thực tế và có sự công nhận của nhiều người.
Các lập trình viên có thể tự giải quyết một vấn đề tuy nhiên có khả năng là sẽ không tối ưu. Thay vào đó có thể áp dụng các pattern có sẵn để triển khai code.
Ngoài ra nếu bạn sử dụng pattern chung, nó cũng sẽ giúp cho người khác dễ hiểu code hơn → dẫn tới dễ bảo trì hơn.
Phân loại Design Patterns
Hiện có 23 mẫu được định nghĩa trong cuốn “Design patterns Elements of Reusable Object Oriented Software”
Nhóm Creational (nhóm khởi tạo)
- Abstract Factory
- Builder
- Factory
- Prototype
- Singleton

Nhóm Structural (nhóm cấu trúc)
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy

Nhóm Behavioral (nhóm hành vi/ tương tác)
- Chain of responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template method
- Visitor