单例模式:Singleton的作用是保证在应用程序中,一个类Class只有一个实例存在。并提供全局访问。
例子:(java)
public class LazySingleton
{
private static LazySingleton newInstance = null;
private LazySingleton ()
{
}
public static synchronized LazySingleton getInstance ()
{
if (newInstance == null)
{
newInstance = new LazySingleton ();
}
return newInstance;
}
}
singleton限制了实例个数,有利于gc的回收。
例子(c++):
class ObStatSingleton
{
public:
static void init(ObEventManager *mgr);
static ObEventManager *get_instance()
{
return mgr_;
}
private:
ObStatSingleton() {}
DISALLOW_COPY_AND_ASSIGN(ObStatSingleton);
private:
static ObEventManager *mgr_;
};