EXAMPLE || Principio de Sustitución de Liskov || Liskov Substitution Principle

in #spanish6 years ago

Propia Edición.

Si deseas conocer la base de este principio así como una descripción del mismo puedes revisar el siguiente Post:

Principio de sustitución de Liskov


La mejor forma para representar este principio es haciendo uso de clases para calcular un área, en este caso el área de un Rectángulo, entonces;

A simple vista pareciera estar bien pero imaginemos como normalmente se aplicaría una herencia en base a esta clase base para un cuadrado.

Ahora bien si leímos la descripción del principio en el otro articulo a simple vista nos damos cuenta que algo ya no cuadra verdad; entonces la manera correcta de resolver esto es con una interfaz:



Realmente puede existir varias soluciones correctas que desarrollaremos con el tiempo por lo pronto se presentan dos:

  • La primera mostrada que es una interfaz que surgió tras la identificación de lo necesario en base a la necesidad y comportamiento de la clase

  • Y en la siguiente imagen lo podemos simplificar aun mas creando una clase padre con los datos necesarios y aplicando la herencia correctamente así con inmutabilidad en el cuadrado la función que necesitamos estaría mas que correcta.






Recuerda que estos principios fueron publicados por primera vez por Robert C. Martin, también conocido como Uncle Bob, en su libro Agile Software Development: Principles, Patterns, and Practices. Una persona que te recomiendo seguir, y revisar su blog de vez en cuando.

Fuente

Y recuerden amiguitos:

  • Un mejor desarrollo conlleva poder ser interpretado por cualquier programador.
  • Si forjas estas bases como tuyas los resultados que obtendrás serán satisfactorias tanto para ti como para el que toque tu proyecto a futuro .
  • No importa si ya eres un viejo lobo de mar en esto o apenas emprendes esta aventura conocer estos principios lo único que pueden hacer es hacerte mejorar.

Hasta la próxima...

Entradas Relacionadas
S.O.L.I.D.
Principio de Responsabilidad Única
Principio Open/Closed
PRINCIPIO DE SUSTITUCIÓN DE LISKOV
Principio de segregación de interfaces
Sort:  

Congratulations @viper160891! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

Award for the total payout received

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

You can upvote this notification to help all Steemit users. Learn why here!

Este post fue votado por la comunidad y trail @developspanish, comunidad encargada de curar a los programadores, traductores de software y bloggers de informática y tecnología de habla hispana.

¿Quieres recibir mejores recompensas en tus post de informática, tecnología o programación, ayúdanos delegando algo de SP:
1 SP, 5 SP, 10 SP