1.单例模式主要防止同一类有多个对象存在,如限制多窗体应用,统一db 连接等
2.主要实现方式即为私有化构造函数,防止外部new,在内部再返回实例化的对象
3.需考虑线程安全
4.几种实现方式
4.1通用的非线程安全
class Design_mode_singleton_Usual
{
private static Design_mode_singleton_Usual _Design_mode_singleton_Usual = null;
private Design_mode_singleton_Usual()
{}
public static Design_mode_singleton_Usual getinstance()
{
if(_Design_mode_singleton_Usual == null)
{
_Design_mode_singleton_Usual = new Design_mode_singleton_Usual();
}
return _Design_mode_singleton_Usual;
}
}
4.2线程安全的2种
class Design_mode_singleton_Thread_Safe
{
private static final Design_mode_singleton_Thread_Safe _Design_mode_singleton_Thread_Safe = new Design_mode_singleton_Thread_Safe();
//私有化构造函数,防止new
private Design_mode_singleton_Thread_Safe()
{}
public synchronized static Design_mode_singleton_Thread_Safe getinstance()
{
return _Design_mode_singleton_Thread_Safe;
}
}
class Design_mode_singleton
{
private static Design_mode_singleton _design_mode_singleton=null;
private static java.lang.Object obj = new java.lang.Object();
private Design_mode_singleton()
{}
public static Design_mode_singleton getinstance() // 单例模式,加锁,线程安全
{
if (_design_mode_singleton==null)
{
synchronized(Design_mode_singleton.class)
{
_design_mode_singleton=new Design_mode_singleton();
}
}
return _design_mode_singleton;
}
}