Principios SOLID desmitificados — (L)

Apr 17 2023
Principio de sustitución de Liskov
Las clases principales deben poder sustituirse fácilmente por sus clases secundarias, lo que significa que si la clase Rectangle es un subtipo de la clase Shape, deberíamos poder reemplazar Shape con Rectangle sin interrumpir el flujo funcional. Escenario de muestra Considere una aplicación que tiene una clase base Animal que tiene muchas subclases como Perro, Gato, etc.

Las clases principales deben poder sustituirse fácilmente por sus clases secundarias, lo que significa que si la clase Rectangle es un subtipo de la clase Shape, deberíamos poder reemplazar Shape con Rectangle sin interrumpir el flujo funcional.

Ejemplo de escenario

Considere una aplicación que tiene una clase base Animal que tiene muchas subclases como Perro , Gato , etc. Cada subclase debe ser sustituible con la clase base Animal .

La clase Snail es una subclase que no puede implementar todos los métodos de la clase base Animal , de modo que si se reemplaza por la clase base, interrumpirá el flujo funcional de la aplicación.

Todas las subclases son sustituibles con la base Animal excepto la clase Caracol, por lo tanto, esto viola el Principio de Sustitución de Liskov.

El objetivo de este principio es básicamente evitar que nuestro código se rompa debido a una nueva funcionalidad. Esto también está en consonancia con nuestros dos primeros principios: responsabilidad única y el principio de abrir y cerrar .

Beneficios principales

  1. Puede usar la subclase de una clase principal de la misma manera que usa la clase principal sin romper nada.
  2. Las subclases pueden modificar/anular los métodos de la clase principal.
  3. Las subclases no pueden definir una nueva función que no esté presente en la clase principal.