Contenido del curso
Contenido del curso
Sergio Sanchez
Gustavo Medina Limon
David Elias Gatica Morales
Emilio Nicolás Mendoza Patti
David Elias Gatica Morales
Francisco Javier Pineda Giraldo
Cristopher Alexander Reyes Portillo
Camilo Hernandez
Pablo Cesar Lara Londoño
Andrés Medina
Esteban Vladimir Alvarenga Gutiérrez
Darío Condori Humerez
Se meciona mucho la palabra **Tipo **y Subtipo, pero hasta donde entiendo, se puede tambien usar la palabra clase base y sub clase para entender este principio.
En resumen lo que entiendí es: "Los objectos en una clase-base, deben poder reemplazarse por sub-classes de esta sin alterar la logica o el funcionamiento".
Con tu explicación logre entender mejor el concepto.
Que los subtipos implementen todas las propiedades que tiene el tipo y que cada propiedad que tenga el tipo tenga sentido dentro del subtipo
Sea φ(x) una propiedad comprobable acerca de los objetos de “x” de tipo “T”. Entonces φ(y) debe ser verdad para los objetos “y” del tipo S, donde S es un subtipo de T.
Que significa φ, ¿solo esta hablando de funciones?
Entiendo, y espero no equivocarme, que es el nombre que le des a una clase (φ), que hereda de otra (x) φ es la letra griega fi x es la letra ji se utilizan para hacer notaciones, o formulas, al describir un estándar para facilitar su comprensión, generalización, y en este caso uso como buen practica. Employee (EmployeeFullTime) en C# EmployeeFullTime : Employee Employee (EmployeeContractor) en C# EmployeeContractor : Employee. y en la aplicación lo explican con la propiedad ExtraHours que solo debe estar en EmployeeFullTime y no en EmployeeContractor, por que no se le pagan
Cualquier propiedad que tenga el tipo, los subtipos también deben tenerla y deben implementarla de la misma manera, para que cuando sea necesario, se pueda realizar una sustitución.
El Principio de Sustitución de Liskov (LSP) es como una regla para las clases de programación. Imagina que tienes una clase base llamada "Animal" y de ella heredan clases como "Perro" y "Pájaro". Según el LSP, si en tu programa necesitas un "Animal", podrías usar tanto un "Perro" como un "Pájaro" y todo debería funcionar bien. Por ejemplo, si tienes una función que hace que un animal haga un sonido, deberías poder llamarla con un perro o un pájaro y obtener el sonido correcto. Si algo no funciona así, estarías rompiendo la regla del LSP.
"Si una propiedad se cumple para un tipo base, también debe cumplirse para sus subtipos."
Fue un poco confuso la explicación del concepto. Recomiendo detenerse y buscar información externa para poder comprender de mejor manera. Aunque tampoco hay de qué preocuparse, con la práctica en el código, suelen resolverse las dudas.
czcxc