何为单例模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
注意事项
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
机房重构的应用
//单例模式 public partial class frmActivateCard : Form { //构造方法为私有private,这就堵死了外界利用new 创建此实例的可能 private frmActivateCard() { InitializeComponent(); //加载程序的皮肤包 //若是窗体没有皮肤包,以下的两个this可以删掉 this.skinEngine1 = new Sunisoft.IrisSkin.SkinEngine(((System.ComponentModel.Component)(this))); this.skinEngine1.SkinFile = Application.StartupPath + "//DeepCyan.ssk"; } private static frmActivateCard frmActivate; //此方法是获得本类实例的唯一的全局访问点 public static frmActivateCard GetInstance() { //若实例不存在或窗体已经被释放,new一个窗体的实例 if (frmActivate==null || frmActivate.IsDisposed) { frmActivate = new frmActivateCard(); } return frmActivate; } }
调用GetInstance方法。GetInstance是一个静态方法,主要负责创建自己的唯一实例
private void MenuItemActivateCard_Click(object sender, EventArgs e) { //单例模式,调用窗体 frmActivateCard frmactivatecard = frmActivateCard.GetInstance(); //设置子窗体的父窗体 frmactivatecard.MdiParent = this; //显示一个新窗体 frmactivatecard.Show(); }
若是想让自己的窗体更加美观,整体舒适简洁,可以移步到这条博客winfrom窗体美化。
如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。
v