【设计模式】— 单例模式

tech2022-09-19  108

单例模式涉及单一的类,这个类创建自己的对象,同时确保单一的对象被创建,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

特点

1、单例类只有一个实例; 2、单例类创建自己的实例; 3、单例类给其他对象提供这一实例;

介绍

意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 主要解决:一个全局使用的类频繁地创建与销毁。 何时使用:当您想控制实例数目,节省系统资源的时候。 如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。 关键代码:构造函数是私有的。 优点:减少内存的开销,避免一个类频繁的创建与销毁。 缺点:没有接口,不能继承,与单一职责原则冲突。

单例的实现

//基础版本 class Singleton { private: static Singleton *local_instance; Singleton(){}; //构造函数为私有 public: static Singleton *getInstance() { if (local_instance == nullptr) { local_instance = new Singleton(); } return local_instance; } }; Singleton * Singleton::local_instance = nullptr; int main() { Singleton * s = Singleton::getInstance(); return 0; }
最新回复(0)