介绍:
单例模式是一种比较简单的创建型设计模式,也可以称之为单件模式,我们在程序中经常会使用单例模式去控制一些全局资源的创建,以此来避免全局资源频繁的创建或是销毁;
作用:
- 保证一个类永远都只有一个实例;如果你已经创建了一个实例,过一会儿还想再创建一个新的实例,此时获得到的实例是之前已创建的实例,而不是一个新的实例;
- 提供一个访问实例的接口,此接口会判断实例是否被创建,如果已经创建,则返回已经创建的实例;
- 避免一些全局使用的实例(比如说共享资源区)频繁创建与销毁;
解决问题:
控制实例数量,保证永远都只有一个实例;
类比:
地球只有一个,无论在什么场景下,我们口中所说的地球都是同一个地球;
代码示例:
/*共享资源大小*/
#define SHARED_MEM_SIZE 100
/*访问该实例的全局接口*/
void* memory_get(void)
{
/*注意static*/
static void* pMem = NULL;
/*当实例已经存在时直接返回这个实例*/
if(NULL != pMem)
return pMem;
/*当实例不存在时创建一个新的实例*/
pMem = (void*)malloc(SHARED_MEM_SIZE);
assert(NULL != pMem);
return (void*)pMem;
}