单例模式
单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。 下面我通过一个实例来介绍一下单利模式到底是怎么应用的。以我近期做的机房收费系统中的例子来说吧。 首先我们建立了一个Windows应用程序,我们建立一个主窗体:MdiParentUI,我们设置它的属性IsMdiContainer属性为true,表示它是文档界面MDI子窗体的容器
·
单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。
下面我通过一个实例来介绍一下单利模式到底是怎么应用的。以我近期做的机房收费系统中的例子来说吧。
首先我们建立了一个Windows应用程序,我们建立一个主窗体:MdiParentUI,我们设置它的属性IsMdiContainer属性为true,表示它是文档界面MDI子窗体的容器,然后建立菜单,这里我们已其中的一个“添加删除用户”菜单(mAddDeleteUser)为例来说明单利模式的使用。
我们将另建的“添加删除用户窗体”命名为:AddDeleteUserUI。
要实现的效果:我每点击一次”添加删除用户“的菜单项,”添加删除用户“窗体就只能显示一次。
通过上述表示,我们知道其实这里的意思就是让”添加删除用户“窗体只有一个实例。显示他是符合单例模式定义的。
代码实现:
Public Class AddDeleteUserUI
Private Shared m_instance As AddDeleteUserUI = Nothing '定义一个私有成员变量
''' <summary>
''' 定义一个私有构造方法
''' </summary>
''' <remarks></remarks>
Private Sub AddDeleteUserUI()
End Sub
''' <summary>
''' 取得窗体实例的单一入口
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Shared ReadOnly Property Instance() As AddDeleteUserUI
Get
If m_instance Is Nothing Then
m_instance = New AddDeleteUserUI()
End If
Return m_instance
End Get
End Property
End Class
''' <summary>
''' 父窗体类
''' </summary>
''' <remarks></remarks>
Public Class MdiParentUI
'添加删除用户窗体
Private Sub mAddDeleteUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mAddDeleteUser.Click
AddDeleteUserUI.Instance.MdiParent = Me
AddDeleteUserUI.Instance.Show() '调用单一入口
End Sub
End Class
这个实例就是运用的单例模式实现了子窗体只实例化一次的效果。
更多推荐
已为社区贡献1条内容
所有评论(0)