1、单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。
通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。
UML图如下:

2、C++代码实现如下:
- #include <iostream>
- using namespace std;
- /* Singleton类,定义一个GetInstance操作
- 允许客户访问它的唯一实例 */
- class Singleton
- {
- private:
- static Singleton * instance;
- public:
- static Singleton * GetInstance() {
- if (instance == NULL) {
- instance = new Singleton();
- }
- return instance;
- }
- };
- Singleton * Singleton::instance = NULL;
- int main()
- {
- Singleton * p_s1 = Singleton::GetInstance();
- Singleton * p_s2 = Singleton::GetInstance();
- if (p_s1 == p_s2) {
- cout << "两个对象是相同的实例" << endl;
- }
- return 0;
- }

本文介绍了设计模式中的单例模式,旨在确保类只有一个实例并提供全局访问点。通过C++代码展示了如何实现单例模式,确保在程序运行过程中只有一个Singleton对象存在,避免了多线程环境下可能产生的多个实例问题。
723

被折叠的 条评论
为什么被折叠?



