机房重构之单例模式的应用

简介: 机房重构之单例模式的应用

何为单例模式

保证一个类仅有一个实例,并提供一个访问它的全局访问点。


这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。


注意事项

1、单例类只能有一个实例。

2、单例类必须自己创建自己的唯一实例。

3、单例类必须给所有其他对象提供这一实例。

机房重构的应用

//单例模式
public partial class frmActivateCard : Form
{
    //构造方法为私有private,这就堵死了外界利用new 创建此实例的可能
    private frmActivateCard()
    {
       InitializeComponent();
       //加载程序的皮肤包
       //若是窗体没有皮肤包,以下的两个this可以删掉
       this.skinEngine1 = new Sunisoft.IrisSkin.SkinEngine(((System.ComponentModel.Component)(this)));
       this.skinEngine1.SkinFile = Application.StartupPath + "//DeepCyan.ssk";
    }
    private static frmActivateCard frmActivate;
    //此方法是获得本类实例的唯一的全局访问点
    public static frmActivateCard GetInstance()
    {
        //若实例不存在或窗体已经被释放,new一个窗体的实例
        if (frmActivate==null || frmActivate.IsDisposed)
        {
           frmActivate = new frmActivateCard();
        }
            return frmActivate;
    }
}

调用GetInstance方法。GetInstance是一个静态方法,主要负责创建自己的唯一实例


private void MenuItemActivateCard_Click(object sender, EventArgs e)
 {
    //单例模式,调用窗体
    frmActivateCard frmactivatecard = frmActivateCard.GetInstance();
    //设置子窗体的父窗体
    frmactivatecard.MdiParent = this;
    //显示一个新窗体
    frmactivatecard.Show();
}

若是想让自己的窗体更加美观,整体舒适简洁,可以移步到这条博客winfrom窗体美化。


如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。

v

相关文章
|
人工智能 JSON 前端开发
有关D2C工具的思考和分享, 提升前端研发效率
有关D2C工具的思考和分享, 提升前端研发效率
634 1
|
搜索推荐 数据库 C语言
C语言实现冒泡排序(超详细)
C语言实现冒泡排序(超详细)
686 1
|
Java 数据安全/隐私保护
使用java操作word
使用java操作word
271 0
|
弹性计算 关系型数据库 应用服务中间件
从零基础到博主大亨!一键解锁阿里云ECS,LNMP秒搭WordPress,你的个性博文帝国,今日崛起!
【8月更文挑战第5天】随着互联网技术的发展,个人博客成为技术爱好者和内容创作者分享知识的平台。阿里云ECS以其高性能和灵活性成为搭建博客的优选。本文指导你购买配置ECS,并安装CentOS 7。通过SSH登录后,更新系统并安装LNMP环境,包括Nginx、MariaDB、PHP。配置Nginx处理PHP请求,初始化数据库并设置WordPress数据库。接着下载WordPress,解压并设置权限。最后,通过浏览器完成安装向导。利用WordPress丰富的资源定制网站,开启个性化创作之旅。记得定期备份数据,利用ECS的扩展性支持网站成长。
305 4
|
XML 分布式数据库 数据库
【计算机三级数据库技术】第13章 大规模数据库架构--附思维导图
文章概述了分布式数据库、并行数据库、云计算数据库架构和XML数据库的基本概念、目标、体系结构以及与传统数据库的比较,旨在提供对这些数据库技术的全面理解。
233 1
|
Web App开发 编解码 算法
浅谈语音质量保障:如何测试 RTC 中的音频质量?
日常音视频开会中我们或多或少会遭遇这些场景:“喂喂喂,可以听到我说话吗?我听你的声音断断续续的”,“咦,我怎么可以听到回声?”,“太吵啦,我听不清楚你在说啥” 等等。这些语音质量问题影响音视频开会体验,如若是重要的会议,那足够让人 “恼羞成怒”。那么如何有效的减少这些问题发生呢?本系列文章就将为大家分享阿里云视频云在保障 RTC 语音质量方面的测试经验。
浅谈语音质量保障:如何测试 RTC 中的音频质量?
|
自然语言处理 C# 图形学
使用dnSpyEx对.NET Core程序集进行反编译、编辑和调试
使用dnSpyEx对.NET Core程序集进行反编译、编辑和调试
275 0
|
机器学习/深度学习 存储 自然语言处理
【电商搜索】现代工业级电商搜索技术-Facebook语义搜索技术QueSearch(上)
【电商搜索】现代工业级电商搜索技术-Facebook语义搜索技术QueSearch(上)
|
缓存 Java 编译器
Go 中的内存布局和分配原理
Go 中的内存布局和分配原理
|
SQL Oracle 关系型数据库
Flink的表值函数(Table-Valued Function,TVF)是一种返回值是一张表的函数
【2月更文挑战第17天】Flink的表值函数(Table-Valued Function,TVF)是一种返回值是一张表的函数
335 1