tag:blogger.com,1999:blog-19450532.post2368814530013375563..comments2023-08-04T05:53:13.693-03:00Comments on PHP Senior: Herencia de clases y el "Principio de Liskov" (actualizado 15/10/2007)Enrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-19450532.post-58476330287051912782010-07-03T19:03:02.562-03:002010-07-03T19:03:02.562-03:00Por cierto muy buen post.Por cierto muy buen post.José Luishttps://www.blogger.com/profile/06949490557521089127noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-28920690965794110172010-07-03T19:02:27.421-03:002010-07-03T19:02:27.421-03:00Bueno, se que estoy cometiendo un error de ética a...Bueno, se que estoy cometiendo un error de ética al reavivar un post viejo, pero:<br />¿el if sería tan malo?, justifico:<br />En el caso de que se hiciera sin software, administración tomaría los legajos de las personas que trabajan en la compañia y comenzaría a emitir cheques y asentar la operación en los libros. Cuando agarren el legajo de un becario dirian "oh! un becario, este no recibe pago." y seguiria con el proximo legajo de la pila...<br />Saludos.José Luishttps://www.blogger.com/profile/06949490557521089127noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-49544614095227217422009-03-31T23:09:00.000-03:002009-03-31T23:09:00.000-03:00Yo tengo pregunta tonta.La clase Empleado seria ab...Yo tengo pregunta tonta.<BR/><BR/>La clase Empleado seria abstracta?<BR/><BR/>Yo tengo una posible solucion a lo planteado: seria crear una clase nueva Empleado_no_asalariado quien sea heredada por la clase Becario, y en la case Administracion comprobar si el objeto ES de tipo empleado para realizar la liquidacion de sueldos, y en caso que no lo sea no calcular nada.<BR/><BR/>Se me ocurrio eso quizas estoy pifiando bastante, pero en caso que sea asi, no es molesto crear una nueva clase igual a Empleado con la unica diferencia de carecer del metodo liquidarSueldo ?<BR/><BR/>Espero que se haya entendido mi posible solucion.<BR/><BR/>Saludos!Anonimohttps://www.blogger.com/profile/16657187787224403319noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-45620558250677075362008-04-10T18:34:00.000-03:002008-04-10T18:34:00.000-03:00No Damian, si restringes el método de liquidación ...No Damian, si restringes el método de liquidación de sueldos a que solo reciba objetos del tipo empleado asalariado, pues ya se estaría incumpliendo el principio de sustitución de Liskov, que lo que dice precisamente es que este método puede recibir cualquier objeto de la estructura jerárquica y seguir funcionando de igual forma, si y solo si (en este caso) la clase EmpleadoAsalariado fuera un SUBTIPO de la clase Empleado.Sofilogohttps://www.blogger.com/profile/01963347948952635194noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-49959331221646697642008-01-10T13:04:00.000-02:002008-01-10T13:04:00.000-02:00Me falto agregar que el método de liquidacion de s...Me falto agregar que el método de liquidacion de sueldos recibiria solamente objetos del tipo "Empleado asalariado".<BR/>Ahora si, hasta luego.Damián Galarzahttps://www.blogger.com/profile/05965332143358497172noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-79873861298052764672008-01-10T13:02:00.000-02:002008-01-10T13:02:00.000-02:00Hola, se me ocurrió que se podrían crear dos clase...Hola, se me ocurrió que se podrían crear dos clases: "Empleado asalariado" y "Empleado ad honorem". Estas dos serían sub clases de Empleado. Empleado asalariado tendría el método para liquidar sueldos, mientras que la otra no. Por supuesto que la clase Becario entraria en la segunda clase. Opino que se podría hacer esto para poder reutilizar el codigo de Empleado. Sino, simplemente sacar Becario de esa estructura.<BR/>Saludos. Muy bueno el post.Damián Galarzahttps://www.blogger.com/profile/05965332143358497172noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-69259899250814717552007-10-15T09:24:00.000-03:002007-10-15T09:24:00.000-03:00Estimado Pooof:Pensé que había quedado obvio... el...<B>Estimado Pooof:</B><BR/><BR/>Pensé que había quedado obvio... el problema es que la herencia está mal formulada y que el Becario no se comporta como un Empleado, por lo tanto no puede ir en esa estructura, de lo contraro te va a obligar a desarmar tu sistema para tratar de ajustarlo a un comportamiento no adecuado (agregando condiciones explícitas para el mismo).<BR/><BR/>Voy a releer el post y hacerle algunos ajustes para que quede más claro ... gracias ;-)Enrique Placehttps://www.blogger.com/profile/15452998349449419148noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-35203689224106584642007-10-15T08:41:00.000-03:002007-10-15T08:41:00.000-03:00Pero como haces al final con el liquidar sueldo?Pero como haces al final con el liquidar sueldo?pooofhttps://www.blogger.com/profile/01116226320516720532noreply@blogger.com