封装好的单例模式

举报
小小张自由--张有博 发表于 2021/11/24 00:34:06 2021/11/24
【摘要】     之前写过一篇博文,单例模式的应用,但是每个窗体都需要判断一下,窗体要是多的话,比较麻烦。现在决定将单例模式抽出来,封装到一个单独的类中,供其他窗体调用。 /// <summary>/// Version:V1.0.0/// Creator:promsing/// CreateDa...
 
 

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


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

UI层直接调用即可:


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

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

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

 

文章来源: blog.csdn.net,作者:小小张自由—>张有博,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/promsing/article/details/109688460

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。