23种设计模式一:单例模式

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

单例模式

先看个例子:

场景目标:点击按钮打开指定的窗口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里面就无法访问到了,这样一个都创建不了了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值