设计模式之单例模式

98 阅读1分钟

介绍:

​ 单例模式是一种比较简单的创建型设计模式,也可以称之为单件模式,我们在程序中经常会使用单例模式去控制一些全局资源的创建,以此来避免全局资源频繁的创建或是销毁;


作用:

  • 保证一个类永远都只有一个实例;如果你已经创建了一个实例,过一会儿还想再创建一个新的实例,此时获得到的实例是之前已创建的实例,而不是一个新的实例;
  • 提供一个访问实例的接口,此接口会判断实例是否被创建,如果已经创建,则返回已经创建的实例;
  • 避免一些全局使用的实例(比如说共享资源区)频繁创建与销毁;

解决问题:

​ 控制实例数量,保证永远都只有一个实例;


类比:

​ 地球只有一个,无论在什么场景下,我们口中所说的地球都是同一个地球;


代码示例:

/*共享资源大小*/
#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;
}