单例模式的简单应用

单例模式主要是为了确保只有单个对象被创建,主要解决一个类的对象频繁地创建与销毁

我们通过如下示例来了解单例模式的作用,以及实现方案

如上图,我们只要点击一次"普通模式"的菜单,即会创建一个新的窗体对象。

而我们如果**使用单例模式,**即点击"单例模式"菜单,当唯一对象不存在的时候,会创建一个窗体,但是当窗体已经

存在的时候,将不会创建新的窗体。

  1. // 1、定义一个私有的静态的对象
  2. //2、定义一个公有的方法访问它,而不是再new 一个对象
cs 复制代码
// 1、定义一个私有的静态对象
private static FormSingle1 frm;

//2、定义一个公有的方法访问它
public static FormSingle1 CreateFrom()

{

    if (frm == null || frm.IsDisposed)

    {    //当实例不存在时 或实例被释放时

        frm = new FormSingle1();

    }

    return frm;

}

//******************************8
private void 普通模式ToolStripMenuItem_Click(object sender, EventArgs e)

 {

     FormCommon formCommon = new FormCommon();

     formCommon.MdiParent = this;

     formCommon.Show();

 }

//******************************
 private void 单例模式ToolStripMenuItem_Click(object sender, EventArgs e)

 {

     FormSingle1 frm = FormSingle1.CreateFrom();

     frm.MdiParent = this;

     frm.Show();

 }
相关推荐
czhc114007566319 分钟前
C#1114 枚举
开发语言·c#
q***51891 小时前
如何在Windows系统上安装和配置Node.js及Node版本管理器(nvm)
windows·node.js
曹牧1 小时前
C#中,GetValueOrDefault方法
c#
胡八一3 小时前
Windows 7 运行 .NET 应用时报错“hostfxr.dll 加载失败 (HRESULT: 0x80070057)”的彻底解决指南
windows·.net
SunnyDays10115 小时前
使用 C# 实现 Excel 与 DataTable 相互转换
c#·excel转datatable·datatable转excel
q***06295 小时前
如何在 Windows 上安装 MySQL(保姆级教程2024版)
数据库·windows·mysql
碰大点6 小时前
数据库“Driver not loaded“错误,单例模式重构方案
数据库·sql·qt·单例模式·重构
小毛驴8506 小时前
软件单例模式
单例模式
獨枭14 小时前
C# 本地项目引用失效与恢复全攻略
开发语言·c#·visual studio
清风与日月15 小时前
c# 上位机作为控制端与下位机通信方式
单片机·嵌入式硬件·c#