Chọn design pattern nào? Bảng tra nhanh theo vấn đề TL;DR: Bài này là bảng tra nhanh: bạn đi từ vấn đề đang gặp để ra pattern nên nghĩ tới, kèm cột đừng dùng khi để không áp nhầm. Đây là trang nên …
Visitor Pattern trong Python: tách thuật toán khỏi cấu trúc đối tượng TL;DR: Visitor (nhóm Behavioral) tách thuật toán ra khỏi cấu trúc đối tượng mà nó chạy trên đó. Mỗi element có method accept(visitor) gọi ngược …
Memento Pattern: chụp lại trạng thái để quay lui mà không phá vỡ đóng gói TL;DR: Memento (nhóm Behavioral) cho phép bạn lưu lại một ảnh chụp (snapshot) trạng thái nội bộ của một đối tượng ra bên ngoài, để sau này khôi ph…
Mediator Pattern: một trung gian điều phối, hết cảnh gọi chéo nhau TL;DR: Mediator đặt một đối tượng trung gian đứng giữa nhiều đối tượng (colleague) để điều phối giao tiếp, thay vì để chúng gọi thẳng lẫn nhau. Mạn…
Interpreter Pattern: dựng một ngôn ngữ nhỏ cho những luật hay thay đổi TL;DR: Interpreter (nhóm Behavioral) định nghĩa một ngữ pháp (grammar) cho một ngôn ngữ nhỏ, rồi biến mỗi luật ngữ pháp thành một class. Ghép các …
Flyweight Pattern: chia sẻ trạng thái chung để tiết kiệm bộ nhớ TL;DR: Flyweight (đối tượng hạng nhẹ) giải quyết bài toán "có quá nhiều object nhỏ giống nhau ăn hết RAM". Cách làm: tách phần trạng thái …
Các anti-pattern thường gặp và cách tránh: 7 cạm bẫy quen mặt trong code TL;DR: Anti-pattern là một "lời giải" trông hợp lý, hay được dùng, nhưng thực ra gây hại nhiều hơn lợi. Bài này điểm 7 cái quen mặt nhất: …