Trong kỹ thuật phần mềm, Singleton là một mẫu thiết kế nhằm hạn chế các thực thể của một lớp thành một thực thể duy nhất. 
Điều này rất hữu ích khi một thực thể đối tượng cần thiết để phối hợp hành động trên toàn hệ thống. 


Hệ thống hoạt động hiệu quả hơn khi chỉ có một thực thể đối tượng tồn tại, hoặc hạn chế các thực thểđến một số lượng nhất định.
Trong bài viết này, tôi trình bày Single Pattern dưới 2 dạng: 
Singleton đơn giản.
Singleton với OOP.


Singleton đơn giản



  1. #ifndef __SINGLETON_H__

  2. #define __SINGLETON_H__

  3.  

  4. #include

  5.  

  6. class Singleton

  7. {

  8. public:

  9. staticvoid init();

  10. staticvoid release();

  11. static Singleton* getInstance();

  12.  

  13. void method();

  14. private:

  15. static Singleton* m_Instance;

  16. private:

  17. Singleton();

  18. ~Singleton();

  19. };

  20. #endif// !__SINGLETON_H__

Ở trong lớp Singleton, các phương thức và các thuộc tính:




  • Constructor và Destructor ở Private nhằm ngăn việc khởi tạo hoặc hủy thực thể của lớp Singleton.

  • Thuộc tính m_Instance có kiểu dữ liệu của chính lớp đó và mang kiểu static. Ở đây, thuộc tính m_Instance là thực thể đại diện cho lớp Singleton.

  • Phương thức getInstance trả về thực thể đại diện của lớp Singleton là m_Instance nhằm đảm bảo tính đóng gói.

  • Phương thức init dùng để cấp phát vùng nhớ và thiết lập các thông số cần thiết cho m_Instance.

  • Phương thức release dùng để thu vùng vùng nhớ đã cấp phát và đồng thời hủy các vùng nhớ của các thuộc tính con của Singleton (nếu cóWink.
  • Phương tính method là phương thức có thể gọi ở bất kì vị trí nào trong chương trình thông qua thực thể của lớp.






 

Login để lấy link download