目录
何为单例模式
注意事项
机房重构的应用
何为单例模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
注意事项
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窗体美化。
如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。