封装好的单例模式

简介: 封装好的单例模式

之前写过一篇博文,单例模式的应用,但是每个窗体都需要判断一下,窗体要是多的话,比较麻烦。现在决定将单例模式抽出来,封装到一个单独的类中,供其他窗体调用。


/// <summary>
/// Version:V1.0.0
/// Creator:promsing
/// CreateDate:2020/10/31 11:18:56
/// Function: 单例模式—泛型实现
/// Component:一个实例窗体的方法
/// <summary>
public static class Singleton<T> where T : Form, new()      //参数类型基类必须是Form,具有无参数的构造参数
{                                //where约束
     public static T frm;
     //若实例不存在或窗体已经被释放,new一个窗体的实例
     public static T CreateInstrance()
     {
         if (frm == null || frm.IsDisposed)
         {
             frm = new T();
         }
         frm.Show();
         return frm;
     }
}

UI层直接调用即可:


//单例模式
FrmAddNotice frmAddNotice = Singleton<FrmAddNotice>.CreateInstrance();
 //单例模式
FrmBasicData frmBasicData = Singleton<FrmBasicData>.CreateInstrance();

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

相关文章
|
13天前
|
设计模式 缓存 安全
【设计模式】单例模式:确保类只有一个实例
【设计模式】单例模式:确保类只有一个实例
27 0
|
13天前
|
C++
C++实现单例模式-多种方式比较
单例模式,面试中经常被问到,但是很多人只会最简单的单例模型,可能连多线程都没考虑到,本文章从最简单的单例,到认为是最佳的单例模式实现方式,单例模式没有什么知识点,直接上源码
55 0
|
7月前
|
设计模式 安全 Java
特殊类设计及单例模式(C++)
特殊类设计及单例模式(C++)
66 1
|
7月前
|
设计模式 Java 数据库
JAVA设计模式2:工厂方法模式,将对象的实例化过程封装在子类
JAVA设计模式2:工厂方法模式,将对象的实例化过程封装在子类
|
8月前
单例模式设计(一)
饿汉模式 由名字我们就可以知道 &quot;饿汉&quot; 嘛,就比较急切,在类加载的时候就创建实例: 1. 写一个类,在本类中构造实例,用static修饰,直接创建出来(提供一个现有的实例) 2. 在本类中写一个方法获取到上面的实例 3. 将这个类的构造方法设置为私有的,让外部不能 new 这个对象
39 0
|
9月前
|
安全 Java 编译器
单例模式的4种实现方式
单例模式的4种实现方式
78 0
|
8月前
|
安全
单例模式设计(二)
根据上面的 "懒汉模式" 和 "饿汉模式"。我们可以知道,懒汉模式,它只是负责读取,没有修改。而 " 饿汉模式 " 是既读取,也进行修改。所以来说, "懒汉模式" 是线程安全的, "饿汉模式" 是线程不安全的。
39 0
|
9月前
|
设计模式 安全 编译器
单例模式实现的四种方法详解
单例模式实现的四种方法详解
59 0
|
缓存
单例模式(5种实现方式)
单例模式(5种实现方式)
114 0
|
设计模式 安全
单例设计模式的两种方式
单例设计模式的两种方式
106 0

热门文章

最新文章