analista programador

Páginas: 6 (1350 palabras) Publicado: 27 de abril de 2014













Patrón de
Inyección de Dependencias.













Profesor: Armando Muñoz Tamponi.
Nombre: Isaac Álvarez Ramírez.
Santiago, Chile Abril 2014.






INDICE

INTRODUCCIÓN 2
INYECCIÓN DE DEPENDENCIAS. 3
Origen 3
Funcionamiento 4
Conclusión 12
BIBLIOGRAFIA 13INTRODUCCIÓN

En informática, Inyección de Dependencias (en inglés Dependency Injection, DI) es un patrón de diseño orientado a objetos, en el que se suministran objetos a una clase en lugar de ser la propia clase quien cree el objeto. El término fue acuñado por primera vez por Martin Fowler.


































INYECCIÓN DE DEPENDENCIAS.

Origen
Enlos comienzos de la programación, los programas eran lineales y monolíticos. El flujo de ejecución era simple y predecible, ejecutándose línea tras línea.
Aparecieron dos conceptos para estructurar el código: la modularidad y la reutilización de los componentes: se crean bibliotecas de componentes reutilizables. El flujo se complica, saltando de componente a componente, y aparece un nuevoproblema: la dependencia (acoplamiento) entre los componentes.
El problema de la dependencia se empieza a considerar lo suficientemente importante como para definir nuevos conceptos en el diseño :
Inversión de control (IoC, por sus siglas en inglés)
Inyección de Dependencias (Dependency Injection, DI) que es una forma de inversión de control.












Funcionamiento
Supongamos quetenemos la clase llamada Androide. Este androide puede realizar acciones de diferentes maneras, por ejemplo un androide puede avanzar caminando o corriendo. Veamos la clase androide sin inyección de dependencia:

public class Androide
{
public Androide()
{
}

public void Avanzar() { }
public void Retroceder() { }
public void Disparar() { }}

Androide puede realizar las acciones de Avanzar, Retroceder y Disparar. Viendo este trozo de código ya podemos intuir que si queremos cambiar el comportamiento de cualquier acción nos implica modificar directamente el código de Androide. Esto no es ideal, ya que hemos dicho que Androide debería poder realizar las acciones de diferentes maneras.
Con este ejemplo vamos a desarrollar unainyección de dependencias para solucionar este problema.
Tenemos que abstraer la responsabilidad de los comportamientos de Androide a un componente que se encargue de estas acciones y tenga la responsabilidad de realizarlas.
Para ello vamos a crear la clase CuerpoAndador que es la que tendrá la responsabilidad de realizar las acciones de Androide.
La clase CuerpoAndador tiene los siguientesmétodos:

public class CuerpoAndador
{
public CuerpoAndador() { }
public void Avanzar() { }
public void Retroceder() { }
public void Disparar() { }
}

Ahora vamos a cambiar la implementación de Androide para que utilice una inyección de dependencias:

public class Androide
{
public CuerpoAndador Cuerpo { get; set; }
publicAndroide() { }

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

Vemosahora que la responsabilidad de las acciones recaen en CuerpoAndador y que Androide utiliza las acciones del CuerpoAndador que tiene asignado en ese momento.
Aun así, podemos comprobar que seguimos dependiendo de la implementación de CuerpoAndador en vez de una abstracción.
Vamos a crear la interface ICuerpo de la siguiente manera:

public interface ICuerpo
{
void Avanzar();...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Analista Programador
  • Analista programador
  • Analista Programador
  • Analista programador
  • Analista Programador
  • Analista Programador
  • analista programador
  • Analista Y Programador

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS