Docs học tập
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)?

On this page