单例模式的简单应用

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

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

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

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

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

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

 }
相关推荐
开开心心就好18 分钟前
实用系统备份还原,小巧免PE备份快镜像小
windows·计算机视觉·pdf·计算机外设·迭代器模式·excel·桥接模式
Bruce_Liuxiaowei21 分钟前
Windows 进程溯源工具 witr:原理、安装与实战
windows·网络安全
czhc114007566333 分钟前
ModBus 218
c#
cjl_8520081 小时前
MySQL-递归查询
数据库·windows·mysql
阿昭L2 小时前
Windows内存管理中的交换空间
windows·操作系统·分页机制
亓才孓2 小时前
【MyBatis Runtime Exception】自动驼峰映射对Map不生效,应该在查询中起别名
java·windows·mybatis
郝学胜-神的一滴3 小时前
单例模式:从经典实现到Vibe Coding时代的思考
开发语言·c++·程序人生·单例模式·设计模式·多线程
Lw老王要学习3 小时前
Windows 下 Miniconda 安装与 conda 命令无法识别问题解决指南
windows·llm·conda·agent
Never_Satisfied13 小时前
在c#中,使用windows自带功能将文件夹打包为ZIP
开发语言·windows·c#
Never_Satisfied15 小时前
在c#中,string.replace会替换所有满足条件的子字符串,如何只替换一次
开发语言·c#