机房收费系统--单例模式

 

机房收费系统中对于许多的窗体弹出式都使用到了单例模式,本次就正在值班教师这一用例来说明单例模式的使用。

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

将上面一句话分解成代码也就是:对该类构造一个私有的构造函数,该类下写一个new实例的方法。在正在值班教师(frmWorkingTeacher)这一个实例中具体代码如下: 

 

    Public Class frmWorkingTeacher
        '静态变量 fwt,窗体类型
         Private Shared fwt As frmWorkingTeacher = Nothing
        '定义一个私有构造函数,外部不能通过代码直接new来实例化。
          Private Sub New()
        End Sub
        '通过本类下 方法来实现 new
        Public Shared Function GetInstance() As frmWorkingTeacher
            If fwt Is Nothing OrElse fwt.IsDisposed = True Then
                fwt = New frmWorkingTeacher
                fwt.MdiParent = frmMain.ActiveForm 
            End If
            Return fwt
        End Function
    End Class


这机房收费系统中的优点也就是实现该窗体的单一show,避免出现多个同样的窗体。

我们的单例模式如图:

 

机房收费系统--单例模式_第1张图片

 

具体代码结构:

    Public Class Singleton
      Private Shared instance As Singleton
      Private Sub New()
      End Sub
      Public Shared Function GetInstance() As Singleton
          If instance Is Nothing Then
              instance = New Singleton
          End If
          Return instance
      End Function
    End Class


  

通过其他类调用该类的方法即可显示我们单例类。

你可能感兴趣的:(Singleton,合作版机房收费系统)