前言
在学习设计模式得时候就想过机房重构肯定是要加单例模式的,否则就会出现每点击一个就会出现一个窗体。我们需要的是点击一次出现一个窗体,再此点击的时候就不再出现该窗体。
单例模式
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
如何实现?
拿学生查看余额这个窗体为例:
学生查看余额代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace UI
{
public partial class UIInquiryBalance : Form
{
private static UIInquiryBalance uib = null; //声明一个静态的变量
public UIInquiryBalance()
{
InitializeComponent();
}
public static UIInquiryBalance GetInstance()//得到实例的方法,返回值就是本类对象,也是静态的
{
if (uib==null||uib.IsDisposed)
{
uib = new UIInquiryBalance();
}
return uib;
}
主窗体代码如下:
UIInquiryBalance inquiry = UIInquiryBalance.GetInstance();
inquery.Show();
这样一来,客户端不再考虑是否需要去实例化的问题了,而把责任都给了应该负责的类去处理。
总结
单例模式的应用虽然简单,也学过,但是刚用的时候,都忘了怎么用了,还得看着设计模式的书才敲出来,总结一遍,以后就直接用了。