之前写过一篇博文,单例模式的应用,但是每个窗体都需要判断一下,窗体要是多的话,比较麻烦。现在决定将单例模式抽出来,封装到一个单独的类中,供其他窗体调用。
/// <summary> /// Version:V1.0.0 /// Creator:promsing /// CreateDate:2020/10/31 11:18:56 /// Function: 单例模式—泛型实现 /// Component:一个实例窗体的方法 /// <summary> public static class Singleton<T> where T : Form, new() //参数类型基类必须是Form,具有无参数的构造参数 { //where约束 public static T frm; //若实例不存在或窗体已经被释放,new一个窗体的实例 public static T CreateInstrance() { if (frm == null || frm.IsDisposed) { frm = new T(); } frm.Show(); return frm; } }
UI层直接调用即可:
//单例模式 FrmAddNotice frmAddNotice = Singleton<FrmAddNotice>.CreateInstrance(); //单例模式 FrmBasicData frmBasicData = Singleton<FrmBasicData>.CreateInstrance();
若是想让自己的窗体更加美观,整体舒适简洁,可以移步到这条博客winfrom窗体美化。