加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

单件模式(Singleton Pattern)vb.net

发布时间:2020-12-16 23:03:52 所属栏目:大数据 来源:网络整理
导读:单件模式(Singleton Pattern)这个模式的技术简单明了: (1)隐藏默认类的构造函数 (2)添加一个共享的成员,以引用单独的、实例化的对象 (3)创建一个公有函数来创建或返回被引用的对象 Public Class Mysingleton Private Shared m_Instance As Mysingl

单件模式(Singleton Pattern)这个模式的技术简单明了:
(1)隐藏默认类的构造函数

(2)添加一个共享的成员,以引用单独的、实例化的对象

(3)创建一个公有函数来创建或返回被引用的对象

Public Class Mysingleton
Private Shared m_Instance As Mysingleton
Private Shared m_TimeOfBirth As String
Private Sub New()
Console.WriteLine("Creating Singleton at {0}",Now.ToLongTimeString)
m_TimeOfBirth = Now.ToLongTimeString
End Sub

Public Shared Function GetInstance() As Mysingleton
If m_Instance Is Nothing Then
m_Instance = New Mysingleton()
End If
Return m_Instance
End Function

Public ReadOnly Property TimeOfbirth() As String
Get
Return m_TimeOfBirth
End Get
End Property
End Class

Sub Main()
Dim obTest1 As Mysingleton
Dim obTest2 As Mysingleton
Dim i As Integer
obTest1 = Mysingleton.GetInstance()
Console.WriteLine("GetInstance() called at {0} ; obtest1.TimeofBirth()={1}",Now.ToLongTimeString,obTest1.TimeOfbirth)
For i = 1 To 50000000

Next

obTest2 = Mysingleton.GetInstance
Console.WriteLine("GetInstance() called at {0} ; obtest2.TimeofBirth()={1}",obTest2.TimeOfbirth)
MessageBox.Show("click ok to end")

end sub

多线程

Public Class Mysingleton
Private Shared m_Instance As Mysingleton
Private Shared m_TimeOfBirth As String
'多线程安全
Private Shared m_Mutex As New System.Threading.Mutex

Private Sub New()
Console.WriteLine("Creating Singleton at {0}",Now.ToLongTimeString)
m_TimeOfBirth = Now.ToLongTimeString

End Sub

Public Shared Function GetInstance() As Mysingleton
m_Mutex.WaitOne()
If m_Instance Is Nothing Then
m_Instance = New Mysingleton()
End If
m_Mutex.ReleaseMutex()
Return m_Instance
End Function

Public ReadOnly Property TimeOfbirth() As String Get Return m_TimeOfBirth End Get End PropertyEnd Class

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读