单例模式Singleton是最常见的设计模式,singleton解决的问题十分常见:如何创建一个唯一的变量或对象?在面向过程的C语言中可以用全局变量来实现,当我们遇到纯粹的面向对象的编程时,如何实现?我们只能用Singleton模式来实现了。所以singleton在开发中非常有用。比如ZerotierOne项目中,网络topology肯定是唯一的,如何创建一个唯一的网络拓扑呢?
单例的一般实现比较简单,下面是代码和UML图。由于构造函数是私有的,因此无法通过构造函数实例化,唯一的方法就是通过调用静态函数GetInstance。