lunes, 14 de agosto de 2017

Que gripe tengo!! Inyección de dependencias!! ;)


  • Las interfaces que definen las operaciones de los servicios - no necesariamente tienen que ser interfaces (como en C#), sino que puede ser una clase abstracta
  • Los servicios, que implementan las interfaces anteriores, que se van inyectar
  • Los clientes que usarán los servicios
  • El inyector, que es el encargado de construir e inyectar los servicios en los clientes

En este ejemplo se inyecta la clase Body en el objeto Cuerpo, depende de la clase con que se direccione el objeto cuerpo:

using System;
using System.Collections.Generic;
using System.Text;

namespace inyecciondependencia
{
public class Robot
{
//Inyectar un cuerpo al Robot
public Body Cuerpo { get; set; }


           //public Auto Cuerpo { get; set; }

public Robot() { }
public void Caminar()
{
if (Cuerpo != null)
Cuerpo.Caminar();
}

public void Volar()
{
if (Cuerpo != null)
Cuerpo.Volar();
}

public void Disparar()
{
if (Cuerpo != null)
Cuerpo.Disparar();
}

/*Hacer otras cosas cool que hacen los robots*/
public void BuscarAJhonConnor()
{
Cuerpo.Caminar();
/*Paso 1 buscar en internet
*Paso 2 Cuerpo.Caminar();
*Paso 3 Cuerpo.Disparar();
*Paso N*/
}

}

public class Auto
{
public void Caminar()
{

}

public void Volar()
{

}

public void Disparar()
{

}
}
}

miércoles, 9 de agosto de 2017

Patrones de diseño: Singleton



Singleton:


Una instancia de una clase es accesada  a través de la misma instancia, y solo a partir de ella, esto evita que la misma clase ocupe varias porciones de memoria y a  evitar la repetición como buena practica de código limpio. En el ejemplo se crea la clase y su instancia y se ejecuta un evento o función de la instancia que se genera. No puede generarse mas instancia porque al generarla seguirás accediendo inevitablemente a la instancia a la que ella esta autorizando su acceso. La complicación del singleton puede derivar cuando se asegura un thread o hilo de ejecución con el comando Lock para ellos se asegura que no este asegurado o en el casi que se verifica si es nula la instancia para cargarla con la misma clase..