Computer >> Máy Tính >  >> Lập trình >> C ++

Giải thích mẫu thiết kế Singleton của C ++.


Singleton design pattern là một nguyên tắc thiết kế phần mềm được sử dụng để hạn chế việc khởi tạo một lớp cho một đối tượng. Điều này rất hữu ích khi cần chính xác một đối tượng để điều phối các hành động trên toàn hệ thống. Ví dụ:nếu bạn đang sử dụng một trình ghi nhật ký, ghi nhật ký vào một tệp, bạn có thể sử dụng một lớp singleton để tạo một trình ghi nhật ký như vậy. Bạn có thể tạo một lớp singleton bằng đoạn mã sau -

Ví dụ

#include <iostream>

using namespace std;

class Singleton {
   static Singleton *instance;
   int data;
 
   // Private constructor so that no objects can be created.
   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;
   }
};

//Initialize pointer to zero so that it can be initialized in first call to getInstance
Singleton *Singleton::instance = 0;

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

đầu ra

Điều này sẽ đưa ra kết quả -

0
100