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 #2: Open/Closed Principle (OSP) con C#
Actualizado el 01 Junio, 2017 y leído 1,138 veces
Calificación: 10.00 / 10

SOLID #2: Open/Closed Principle (OSP) con C#

Anexsoft

Una clase u objeto debe estar disponible para su extensión pero no para su modificación. Para este ejemplo vamos a ver los permisos que puede tener un usuario dentro del sistema, uno de ellos es "Puede realizar un pago" basado en el Rol.

class Admin
{
    public int Id { get; set; }
    public string Name { get; set; }
}

class User
{
    public int Id { get; set; }
    public string Name { get; set; }
}

class UserFeatures
{
    public bool UserCanMakeAPayment(User user)
    {
        // Lógica de negocio
        return true;
    }

    public bool AdminCanMakeAPayment(Admin user)
    {
        // Lógica de negocio
        return true;
    }
}

Mañana me solicitan que cree un nuevo rol, por ejemplo "Seller". La solución actual sería crear un método más SellerCanMakeAPayment. Pero el problema radica en que nuestra clase tiene que implementar más codigo.

Por ende, estamos rompiendo el prinpcio al modificar nuestro código. Recuerda, el principio es: abierto para la extensión pero cerrado para la modificación, por lo tanto no modifiques nada, extendie la funcionalidad.

abstract class BaseUser
{
    public int Id { get; set; }
    public string Name { get; set; }
}

class Admin : BaseUser { }

class User : BaseUser { }

class UserFeatures
{
    public bool CanMakeAPayment(BaseUser user)
    {
        // Lógica de negocio
        return true;
    }
}

¡Adquiera ya!

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

    Software de Portafolio Profesional hecho en ASP.NET MVC 5 C#
  • 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

Últimas publicaciones

Encuesta

¿Sobre qué te gustaría que se hable más?

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.