单例模式
先看个例子:
场景目标:点击按钮打开指定的窗口2。

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 fm2 = new Form2();
fm2.Show();
}
}
但是这样实现有一个问题,每次点击按钮都会打开一个新的窗口2。会产生很多个窗口2,与我们预期只想要打开指定的窗口2,目标不符。
这个时候就需要单例模式:只有一个实例。
怎么做?
第一步:构造函数私有化。
构造函数就是为了初始化对象。相当于Python中__init__函数。此处我们每次点击按钮都会触发new Form2()这个构造函数来新建一个窗口。所以首先想到的是将构造函数私有化。
按【F12】转到Form2这个类,将public修改为private。
public partial class Form2 : Form
{
//public Form2()
private Form2()
{
InitializeComponent();
}
}
第二步:提供一个静态方法,返回我们需要的对象。
但是此时有一个新的问题产生,转为私有方法之后,form1里面就无法访问到了,这样一个都创建不了了

本文详细介绍了单例模式的实现步骤及原理,通过实例演示如何确保一个类只有一个实例,并提供了C++实现单例模式的示例代码。
最低0.47元/天 解锁文章
573

被折叠的 条评论
为什么被折叠?



