Pattern Singleton đảm bảo một class chỉ có một instance duy nhất và cung cấp một điểm truy cập toàn cục đến nó. Nó được dùng khi đúng một đối tượng nên điều phối thứ gì đó (một cấu hình, một connection pool, một logger), mặc dù nó cũng khá gây tranh cãi.
Singleton làm gì
SINGLETON → đảm bảo một class chỉ có MỘT instance, với truy cập toàn cục đến nó:
→ class tự kiểm soát việc khởi tạo của chính nó (private constructor)
→ trả về CÙNG MỘT instance mỗi khi được yêu cầu
→ dành cho: những thứ chỉ nên có MỘT, được truy cập từ nhiều nơi
Ví dụ
{
#instance;
() {
(!.#instance) {
.#instance = ();
}
.#instance;
}
}
