单例模式之窗体显示
来源:互联网 发布:波士顿矩阵分析法例题 编辑:程序博客网 时间:2024/06/06 01:27
在机房重构时发现窗体的显示有问题,原因是窗体显示的个数没有限制,这样是不符合规范的,解决这个
问题可以用设计模式中的单例模式
一、信手沾来
在每个窗体中加入单例模式(其实就是一种方法)
Private Shared m_instance As BasicData = Nothing Private Sub BasicData() '构造方法 End Sub Public Shared ReadOnly Property Instance() As BasicData Get If m_instance Is Nothing Then '如果没有窗体,则新建窗体 m_instance = New BasicData End If Return m_instance '返回窗体 End Get End Property
这样的一种方法就可以保证,窗体在显示是只有一个窗体
在窗体显示时只需要调用Instance()方法就行
UI.BasicData.Instance.MdiParent = Me UI.BasicData.Instance.Show() UI.BasicData.ShowDialog()
实现起来不难,但是仔细想了一下,每个窗体都要重写一次代码,这样会很麻烦的,能不能把单例放在
类中,然后写个方法,在实现该方法的时候根据传入的窗体名称达到目的
二、行动下移
有了把该方法封装成类的想法,接下来就是实现
在主窗体类中,新加了一个类,在类中实现如下
<pre name="code" class="csharp">Public Class SingletonForm(Of T As {New, System.Windows.Forms.Control}) Private Shared Instance As T Public Shared Function GetInstance() As T 'Dim Obj As Form If Instance Is Nothing Then Instance = New T Else If Instance.IsDisposed Then Instance = New T End If End If Return Instance End Function End Class
然后在每个窗体显示时调用该方法,并把窗体名称传入即可
SingletonForm(Of DataBasic).GetInstance().ShowDialog()
这样可以省去很多重复的代码,只需要在窗体显示时调用方法传入参数即可
三、总结
在机房重构的时候每个人都能实现,但是实现的方式多种多样,最重要的是在实现时加入自己的想法,充分
利用我们学过的知识。
机房重构是对我们C/S这一阶段学习的小实践,要多联系和实践学过的东西
0 0
- 单例模式之窗体显示
- 使用单例(单态)模式实现winform窗体的单例显示
- 单例模式之窗体应用——“唯一”
- 单例模式之窗体应用——“唯一”
- Winform编程基础之窗体单例模式和单线程操作
- 单例模式实现mdi窗体控制
- C#:Form窗体的单例模式
- 【NCRE】---登录窗体应用“单例模式”
- MDI窗体与单例模式
- 窗体显示有模式与无模式之分...
- 窗体的模式显示
- 模式之单例模式
- 机房重构---MDI窗体+单例模式
- [代码篇] 单例模式——new一个窗体
- C# 单例模式实现实例产生一个窗体对象
- C#中WinForm窗体的单例模式,避免窗体被实例化多次
- 利用单例模式操作MDI主窗体与其相关子窗体
- C#中WinForm窗体的单例模式,避免窗体被实例化多次
- Unity中关于保存图片到Android/IOS相册中的问题
- FlowDroid: 精确的上下文,流,字段, 对象敏感和生存周期感知的污染分析
- python调用Shell脚本(或其他脚本比如python)
- Android开发之onClick(鼠标点击)事件的三种写法
- NYOJ 1156 素数三元组【尝试题】
- 单例模式之窗体显示
- 尝试写博客
- 一步一步写算法(之hash表)
- 三层问题集锦
- Project 7:自然数的拆分
- 优秀程序员应该具备的12种能力
- 操作系统概论
- Linux的capability深入分析
- HBase入门篇