虽然已经学习了很多次的设计模式,但是让我自己不看书写出来,对于我来说还是有点困难的,下面记录单列模式的代码。
需求:
form1中的一个按钮,每一次点击都要实例化一个form2,同时让form2显示出来,但是每一次点击总是出现form2,于是就出现了很多个form2窗体,也就是new出来了很多个form2窗体。于是单例模式出现了。
代码:
在form1的按钮下面需要写下面的代码:
<span style="font-size:18px;">
Form2 f2 = Form2.InstanceObject(); //实例化窗体
f2.Focus(); //让窗体获得焦点
f2.Show(); //显示窗体</span>
在让显示的窗体,也就是Form2中写InstanceObject事件。
<pre name="code" class="csharp"> private static FrmMain _instance; //声明一个变量
internal static FrmMain InstanceObject()
{
if (_instance == null || _instance.IsDisposed)
//如果变量已经为空或者是已经被释放
_instance = new FrmMain();
return _instance;
}
就这样,轻松实现了窗口中仅仅出现了一个Form2啦。