Singleton más legible y accesible en VB.NET
Uno de los patrones de diseño más conocidos y utilizados (si no el que más) es el patrón singleton, que permite garantizar la existencia de una única instancia de una clase evitando la creación de objetos de ese tipo declarando el constructor como privado o protegido. Otra de las ventajas de este patrón es que permite centralizar en un único punto todos los accesos a la instancia.
Una posible implementación en Visual Basic .NET sería la siguiente:
-
Public Class Singleton
-
-
Private Sub New()
-
End Sub
-
-
Private Shared _instancia As Singleton
-
-
Public Shared ReadOnly Property Instancia() As Singleton
-
Get
-
If _instancia Is Nothing Then
-
_instancia = New Singleton
-
End If
-
-
Return _instancia
-
End Get
-
End Property
-
End Class
La forma de acceder a una propiedad de esta clase para asignarle un valor sería:
Singleton.Instancia.MiPropiedad = "miValor"
Esta forma de acceder a una propiedad es un poco artificial y no resulta tan legible o natural como:
Singleton.MiPropiedad = "miValor"
Para conseguir acceder de estar forma a una propiedad de nuestra instancia deberemos crearnos un modulo:
-
<Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
-
Public Module Auxiliar
-
Public ReadOnly Property SingletonInst() As Singleton
-
Get
-
Return Singleton.Instancia
-
End Get
-
End Property
-
End Module
Ahora para acceder a la propiedad simplemente tendremos que escribir:
SingletonInst.MiPropiedad = "miValor"
Esta solución únicamente es valida en Visual Basic.NET debido a que en C# no existen los módulos.
Abril 1st, 2008 at 15:05
Muy bueno, simple y claro.
Abril 30th, 2008 at 1:22
Hola y muchas grcias por compartir el conocimiento con los demas pero tengo una duda…creo la clase Singleton y despues de crearla como la añado al formulario para que cuado lo ejecite se cumpla el algoritmo de Singleton?