当我们启动某一个进程时,就会显示在任务管理器进程管理处;当我们关闭他后再次打开它时,发现启动进程和上次一模一样。也就是说我们启动时它只是在任务管理器上显示了出来,当我们关闭它后它实质上并没有终止,还在继续运行,只不过隐藏了起来。其实这就是单例设计模式。生活中有很多单例设计模式的案例,比如一个国家只有一个主席,即使主席替换,依然只有一个主席。比如某个教室只有一台打印机,那么无论多少人需要使用打印机,都将只能使用这一台打印机。也就是说该对象有且只能创建一个。
接下来我们总结一下单例模式的流程:
1.目的让类中只有一个对象,对象不需要自己释放。
2.将默认构造函数与拷贝构造函数私有化。
3.内部维护一个对象指针。
4.私有化唯一指针。
5.对外提供方法访问该指针。
6.保证了类中只能实例化唯一对象。
我们以打印机为例,某教室只有一台打印机,该打印机一次只能供一个人使用。
我们先来分析打印机,打印机具有打印功能,具有启动功能,具有关闭功能。而且具有一次只能供一人使用的特性,因此创建类:
1 | class PrintingPress { |
用户具有使用打印机打印内容的功能,具有关闭打印机的功能,具有打开打印机的功能。因此创建用户类:
1 | class user { |
以下代码是用C++写的一个简单的打印机案例测试代码。
1 | #define CRT_SECURE_NO_WARNINGS |