介绍:
单例模式
是一种创建型设计模式,又称为单件模式
,是最简单的设计模式之一;
作用:
- 保证一个类永远都只有一个实例;如果你已经创建了一个实例, 过一会儿还想再创建一个新的实例, 此时获得到的实例是之前已创建的实例, 而不是一个新的实例;
- 提供一个访问该实例的全局接口;
解决问题:
- 控制实例数量;
- 避免全局使用的实例频繁创建与销毁;
类比:
地球只有一个,无论在什么场景下,我们口中所说的地球都是同一个地球;
代码示例:
/*共享资源大小*/
#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;
}