单例模式的简单应用

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

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

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

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

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

  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();

 }
相关推荐
dust_and_stars42 分钟前
Windows 11 RDP Wrapper 配置教程与常见问题解决方法
运维·windows
kylezhao20191 小时前
C# 中的类型转换详解
c#
游乐码1 小时前
c#冒泡排序
c#·排序算法
软件资深者2 小时前
Windows11 26H1官方原版下载含x64中文版、繁体版和arm64中文版苹果M1-M4可用
windows·系统安装·win11·系统重装·26h1
此刻觐神2 小时前
Windows学习笔记-17(使用MFC读取程序信息并显示)
windows·笔记·学习
人间打气筒(Ada)2 小时前
SQL Server 之创建和管理数据表
运维·服务器·数据库·windows·sql语句·sql server·windows server
编码者卢布2 小时前
【Azure App Service】32位 Windows App Service 最大能使用多少内存?
windows·microsoft·azure
charlie1145141913 小时前
SSH X11 转发排查与解决指南(Windows + Xming + Ubuntu)
arm开发·windows·笔记·ubuntu·ssh·个人开发·环境配置
CreasyChan3 小时前
phpstorm php windows 配置调试环境
windows·php·phpstorm
玩c#的小杜同学12 小时前
源代码保卫战:给C# 程序(混淆、加壳与反逆向实战)
开发语言·笔记·c#