- 单例模式(Singleton Pattern)
一个类只允许创建一个对象。
- 应用场景
-
处理资源访问冲突
对象级别的锁无法解决资源竞争,使用单例模式实现类级别的锁更加安全。
-
表示全局唯一类
从业务概念上,某些数据在系统中只应该保存一份,适合设计为单例类。
- 如何实现一个单例
- 构造函数需要是private访问权限的,这样才能避免外部创建实例
- 考虑对象创建时的线程安全问题
- 考虑是否支持延迟加载
- 考虑getInstance()性能是否高(是否加锁)
- C语言实现
Class.h
#ifndef __CLASS_H__
#define __CLASS_H__
typedef struct _Class
{
int data;
} Class;
extern Class *getInstance(void);
extern void changeData(Class *_this, int data);
extern void showData(Class *_this);
#endif
Class.c
#