Visita nuestros cursos en KODOTI. Click para unirte
Estudia con KODOTI. Únete

SOLID #3: Liskov substitution Principle con C#

En esta publicación veremos como implementar Liskov substitution Principle usando el lenguaje C#.

Rodríguez Patiño, Eduardo
5,409 lecturas
Rodríguez Patiño, Eduardo
Hemos migrado nuestras publicaciones del blog antiguo. Si crees que esta se encuentra incompleta o sin coherencia deja un comentario para darle una pronta solución.

Este principio es el que más me costo entender sobre todo por su compleja definición.

Si S es un subtipo de T, entonces los objetos de tipo T en un programa de computadora pueden ser sustituidos por objetos de tipo S (es decir, los objetos de tipo S pueden sustituir objetos de tipo T), sin alterar ninguna de las propiedades deseables de ese programa (la corrección, la tarea que realiza, etc.) - Wikpedia

Pero en pocas palabras lo que este proverbio chino quiere decir es que, cada clase que hereda de otra clase puede usarse como sus padres sin conocer la diferencia entre ellas.

Bien, tenemos una clase base abstracta que será un Robot y este puede realizar una cantidad X de punto de año al momento de atacar, pero necesita ser heredada par ser usada.

abstract class Robot
{
    public virtual int Attack()
    {
    return 100; // Damage Points
    }
}

Asimismo, la tecnología avanzado y llegaron 2 modelos nuevo pero van a heredar las características del Robot. La diferencia es que estos tienen más poder de ataque, por lo tanto habremos que sobrescribir sus métodos.

class Robot2017 : Robot
{
    public override int Attack()
    {
        return 150; // Damage Points
    }
}

class Robot2018 : Robot
{
    public override int Attack()
    {
        return 175; // Damage Points
    }
}

Ejemplo

Robot robot1 = new Robot2017();
robot1.Attack(); // Daña 150

Console.ReadLine();

Robot robot2 = new Robot2018();
robot2.Attack(); // Daña 175

Finalmente, podemos usar la clase base e instanciar las otras clases sin que nuestro código sea afectado (eso dice el principio de Liskov).

¿Te gustó nuestra publicación?
Suscríbete a nuestro boletín