我以前使用过vb6,对oo思想本来就很模糊,刚刚接触.net,对设计模式可以说是一张白纸。加上看很多设计模式的书都是c相关的,希望对初学vb.net的弟兄们有点帮助,我的水平有限,错误的地方请大家指点出来,以便纠正!
想了办天,决定从singleton开始,它看起来最简单。一直不敢post,害怕自己错了,大家笑话,想想,学习就需要别人指正自己的错误,post!!!!!!
名称:SingLeton(单态)
结构:
意图:保证一个类只有一个实例,并提供一个访问它的全局访问点。
适用性:1、当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
2、当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
Vb.Net实现代码:
Module SingLeton_Client
Sub Main()
Dim newInstance As SingLeton = SingLeton.Instance
newInstance.SetX(5)
System.Console.Write(newInstance.GetX)
System.Console.Read()
End Sub
Public Class SingLeton
Private Shared mSingLeton As SingLeton
Public Shared Function Instance() As SingLeton
If mSingLeton Is Nothing Then
mSingLeton = New SingLeton
End If
Return mSingLeton
End Function
Protected Sub New()
End Sub
Private x As Integer = 0
Public Sub SetX(ByVal newVal As Integer)
x = newVal
End Sub
Public Function GetX() As Integer
Return x
End Function
End Class
End Module
学习手记:
SingLeton用于 建立数据库连接、论坛的计数器时候使用。我们保存一个配置文件system.xml,其中包含需要的连接字符串,在使用的时候可以使用dbconstring.Instance.constring这样来实现。