单例模式的简单应用

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

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

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

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

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

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

 }
相关推荐
陈葛杰1 小时前
Axure RP 10.0安装教程(傻瓜版)
windows·开源软件·axure
火星papa1 小时前
C# 阻塞队列(BlockingCollection)
c#·queue·阻塞队列
OctShop大型商城源码6 小时前
.NET线上商城源码_C#商城源码_技术赋能下的电商新生态
开发语言·c#·.net·商城系统源码
我命由我123457 小时前
Windows 操作系统 - Windows 查看架构类型
运维·windows·笔记·学习·系统架构·运维开发·系统
hixiong1239 小时前
C#文件目录结构生成工具
开发语言·c#
Byron Loong10 小时前
【逆向】Windows 三大注入:远程线程 、APC 、 钩子注入
windows
凤舞飘伶10 小时前
windows安装docker-desk
windows·docker·容器
绿豆人10 小时前
Cache缓存项目学习4
windows·学习·缓存
LuDvei11 小时前
Windows x86 架构下 Ubuntu 虚拟机内打包 Qt 文件指南
windows·qt·ubuntu
滴滴答答哒11 小时前
# SqlSugar 差异日志功能实现
c#