public class FormMain
{
private static FormMain frm_Main;
public static FormMain creatNewForm ()
{
if (FormMain.frm_Main == null)
{
FormMain.frm_Main = new FormMain();
}
return FormMain.frm_Main;
}
.............................
//其它成员
public void FormMain fun()
{
...........
}
}声明:FormMain f=FormMain.creatNewForm();
方法2:public class FormMain
{
public void FormMain fun()
{
...........
}
}
FormMain f=new FormMain();看到有人用上面的方法,实在有点不明白,为什么要那样?第二种不是简单又是一样的效果吗?有什么异同吗?
{
private static FormMain frm_Main;
public static FormMain creatNewForm ()
{
if (FormMain.frm_Main == null)
{
FormMain.frm_Main = new FormMain();
}
return FormMain.frm_Main;
}
.............................
//其它成员
public void FormMain fun()
{
...........
}
}声明:FormMain f=FormMain.creatNewForm();
方法2:public class FormMain
{
public void FormMain fun()
{
...........
}
}
FormMain f=new FormMain();看到有人用上面的方法,实在有点不明白,为什么要那样?第二种不是简单又是一样的效果吗?有什么异同吗?
第二个是通常不做控制的声明方法!
大话设计模式
http://product.dangdang.com/product.aspx?product_id=20079096&ref=search-1-A
下载地址:
http://topic.csdn.net/u/20100405/15/b887d3de-2f4f-4386-8ef7-ee0993067383.html?57419
第二种方法是重新实例化一个FormMain对象给f对象
{
private static FormMain frm_Main;
public static FormMain creatNewForm ()
{
if (FormMain.frm_Main == null)
{
FormMain.frm_Main = new FormMain();
}
return FormMain.frm_Main;
}作用在于,
你在窗体1:FormMain f=FormMain.creatNewForm();
和在窗体2:FormMain f=FormMain.creatNewForm();
都是同一个对象。单例模式有点像:你到不同的ATM取款,无论你在哪里取款,永远都是从同一个“银行的库存”里扣的。