Anexsoft | Blog y dictado de cursos de Tecnología

En este encontrarás tutoriales de tecnología como PHP, ASP.NET MVC, Front-End, entre otros y cursos exigentes de modalidad online que te ayudarán a crecer profesionalmente.

SOLID #5: Dependency Inversion Principle con C#
Actualizado el 01 Junio, 2017 y leído 1,328 veces
Calificación: 10.00 / 10

SOLID #5: Dependency Inversion Principle con C#

Anexsoft

Esto lo he hablado varias veces, en pocas palabras es hacer uso de inyección de dependencia para evitar de esta manera trabajar con las instancias dentro de nuestro código.

class Mailchimp
{
    public void Send()
    {

    }
}

class EmailService
{
    public void SendAnEmail(Mailchimp mailProvider)
    {
        mailProvider.Send();
    }
}

Todo funciona bien, podemos enviar correos usando nuestro provedor Mailchimp, pero al día siguiente nos dicen que ya no usesmos Mailchimp, sino trabajemos ahora con SendGrid.

class Mailchimp
{
    public void Send()
    {

    }
}

class Sendgrid
{
    public void Send()
    {

    }
}

class EmailService
{
    public void SendAnEmailUsingSendGrid(Sendgrid mailProvider)
    {
        mailProvider.Send();
    }

    public void SendAnEmailUsingMailchimp(Mailchimp mailProvider)
    {
        mailProvider.Send();
    }
}

Esto funciona pero no es óptimo y vamos a romper los principios anteriores. En este caso debemos trabajar con una interfaz de esta manera no nos interesa quien es el proveedor solo nos interesa que el comportamiento sea el mismo.

interface IEmailProvider
{
    void Send();
}

class Mailchimp : IEmailProvider
{
    public void Send()
    {

    }
}

class Sendgrid : IEmailProvider
{
    public void Send()
    {

    }
}

class EmailService
{
    private readonly IEmailProvider _emailProvider;

    public EmailService(
        IEmailProvider emailProvider
    ) 
    {
        _emailProvider = emailProvider;
    }

    public void Send()
    {
        _emailProvider.Send();
    }
}

¡Adquiera ya!

  • Software de Venta e Inventario hecho en PHP y Codeigniter

    Software de Venta e Inventario hecho en PHP y Codeigniter
  • Código de fuente de Red Social desarrollada en ASP.NET MVC

    Código de fuente de Red Social desarrollada en ASP.NET MVC
  • Software de Portafolio Profesional hecho en ASP.NET MVC 5 C#

    Software de Portafolio Profesional hecho en ASP.NET MVC 5 C#

Últimas publicaciones

Encuesta

¿Cómo nos conociste?

Síguenos

Estudia con nosotros y crece profesionalmente

Nuestros cursos han sido hecho en base a lo que demanda el mercado hoy en día.
La experiencia obtenida es la de un ambiente laboral.

Anexsoft
© 2017 Anexsoft, blog y cursos online de TI.