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

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

何为单例模式

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


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


注意事项

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

相关文章
|
4天前
|
设计模式 安全 Java
小谈设计模式(22)—单例模式
小谈设计模式(22)—单例模式
|
10月前
|
设计模式 C#
C# 机房重构单例模式
C# 机房重构单例模式
47 0
|
10月前
|
C# uml
找对象需要单例模式吗?
单例模式的类只提供私有的构造函数
|
设计模式 SQL 安全
【设计模式学习笔记】单例模式详解(懒汉式遇上多线程问题解析基于C++实现)
【设计模式学习笔记】单例模式详解(懒汉式遇上多线程问题解析基于C++实现)
301 0
【设计模式学习笔记】单例模式详解(懒汉式遇上多线程问题解析基于C++实现)
|
设计模式 缓存 Java
php设计模式-单例模式
php设计模式-单例模式
62 1
|
安全 Java 编译器
单例模式 的那点儿事儿
单例模式 的那点儿事儿
87 0
|
设计模式 安全 Java
透彻理解单例模式
主要内容有: 该模式的介绍,包括: 引子、意图(大白话解释) 类图、时序图(理论规范) 该模式的代码示例:熟悉该模式的代码长什么样子 该模式的优缺点:模式不是万金油,不可以滥用模式 该模式的实际使用案例:了解它在哪些重要的源码中被使用
191 0
|
设计模式 安全 Java
单例模式-温故而知新
单例模式,应该是使用频率比较高的一种设计模式了。
110 0
|
设计模式 缓存 安全
死磕GOF23之单例模式
死磕GOF23之单例模式
123 0
|
Java 设计模式
给女友讲讲设计模式——原型模式(JAVA实例)4
前言 上高中那阵子,特别迷恋火影,所以每周都会等着更新。最让我难忘的是里面的主人公鸣人,和他的各种各样炫酷的技能。他的影分身,一下子可以分离出来多个自己,并且这些自己的副本使用的技能都是相同的。
935 0