Backend nền tảng
I2 · Singleton, Factory và Builder
Singleton: một instance dùng chung toàn cục (Logger, DB Connection).
I2 · Middle
Singleton: chỉ có một ông giám đốc. Factory: đặt hàng xưởng, không cần biết làm thế nào. Builder: lắp máy tính từng linh kiện.
Cốt lõi
- Singleton: một instance dùng chung toàn cục (Logger, DB Connection).
- Factory: tạo object qua factory method (PaymentFactory.createPayment()).
- Builder: xây object phức tạp theo từng bước (User.Builder()).
Đánh đổi
Kiểm soát tạo object, linh hoạt, dễ đọc. Singleton khó test, cần thread-safe.
Trong thực tế
Singleton → Logger, ConfigManager trong production.
Bug thường gặp
Singleton giữ state theo người dùng (ví dụ "user hiện tại") dùng chung giữa các request → dữ liệu người này lộ sang người khác.
Tự hỏi lại
Làm sao để Singleton an toàn khi nhiều thread cùng khởi tạo (double-checked locking)?