4.Patrón de creación Singleton
- Hola a todos.Seguimos con nuestro curso dedicado a los patrones de diseño software.Los patrones de diseño son unas técnicas para resolver problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
- En esta ocasión veremos el patrón de diseño Singelton. Es un patrón de diseño que permite restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto.Su intención consiste en garantizar que una clase solo tenga una instancia y proporcionar un punto de acceso global a ella.
- El patrón singleton se implementa creando en nuestra clase un método que crea una instancia del objeto solo si todavía no existe alguna. Para asegurar que la clase no puede ser instanciada nuevamente se regula el alcance del constructor.
- En el siguiente vídeo tenéis un ejemplo de este patrón de diseño.
- Os dejo el código visto en el vídeo:
*Clase SingletonEjemplo:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Singleton
{
public class SingletonEjemplo
{
private static SingletonEjemplo singleton = null;
public string texto = String.Empty;
public int numerito = -1;
SingletonEjemplo(string valor)
{
texto = valor;
numerito = 2;
}
public static SingletonEjemplo Singleton
{
get
{
if (singleton == null)
singleton = new SingletonEjemplo("Creado");
return singleton;
}
set => singleton = value;
}
}
}
*Clase Program:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Singleton
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(SingletonEjemplo.Singleton.texto);
Console.WriteLine(SingletonEjemplo.Singleton.numerito.ToString());
Console.ReadLine();
SingletonEjemplo.Singleton.texto = "DSAfaadfasfasasfas";
SingletonEjemplo.Singleton.numerito = 3;
Console.WriteLine(SingletonEjemplo.Singleton.texto);
Console.WriteLine(SingletonEjemplo.Singleton.numerito.ToString());
Console.ReadLine();
}
}
}
No hay comentarios:
Publicar un comentario