Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Mẫu thiết kế Singleton trong C++


Singleton là nguyên tắc thiết kế phần mềm hạn chế khởi tạo một lớp chỉ một đối tượng (instance). Hữu ích khi cần chính xác một đối tượng điều phối hành động trên hệ thống. Ví dụ: logger ghi log ra file, dùng singleton class.

Ví dụ triển khai

#include <iostream>
using namespace std;

class Singleton {
    static Singleton *instance;
    int data;
    // Constructor private để không tạo đối tượng bên ngoài
    Singleton() { data = 0; }
public:
    static Singleton *getInstance() {
        if (!instance)
            instance = new Singleton;
        return instance;
    }
    int getData() { return this->data; }
    void setData(int data) { this->data = data; }
};

// Khởi tạo con trỏ tĩnh bằng 0
Singleton *Singleton::instance = 0;

int main() {
    Singleton *s = Singleton::getInstance();
    cout << s->getData() << endl;
    s->setData(100);
    cout << s->getData() << endl;
    return 0;
}

Đầu ra

0
100