1、简介

1.1、意图

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

1.2、适用性

当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。

当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

1.3、优点

单例模式可以保证内存里只有一个实例,减少了内存的开销。

可以避免对资源的多重占用。

单例模式设置全局访问点,可以优化和共享资源的访问。

1.4、缺点

单例模式一般没有接口,扩展困难。如果要扩展,则除了修改原来的代码,没有第二种途径,违背开闭原则。

在并发测试中,单例模式不利于代码调试。在调试过程中,如果单例中的代码没有执行完,也不能模拟生成一个新的对象。

单例模式的功能代码通常写在一个类中,如果功能设计不合理,则很容易违背单一职责原则。

2、类图

img

参考

https://blog.csdn.net/atu1111/article/details/105364433

https://blog.csdn.net/zsjlovesm521/article/details/94382666

https://blog.csdn.net/blueboz/article/details/103172559

http://c.biancheng.net/view/1338.html

https://blog.csdn.net/qq_41458550/article/details/109243456