Y, que se yo... no diria que se rompe el encapsulamiento porque por definicion las subclases ven la estructura de las instancias de la(s) superclases... a mi por lo menos me da mas por el lado de apuntarle un dedo acusador al programador mas que a una cosa abstracta como la palabra "encapsulamiento" que no se puede defender por si misma y por lo tanto no puede tener responsabilidades...
Pero bueh, es solo una opinion. Andres. 2008/9/11 Guillermo Schwarz <[EMAIL PROTECTED]>: > Buen punto, el mismo que hizo Alan Kay, que debiò haberse llamado Message > Oriented programming en vez de Object Oriented. > > Pero creo que de todas maneras el problema no se resuelve ahí. El paradigma > de enviar mensajes es tan simple como usar XML o usar web services. Pero eso > al final no significa nada hasta que los mensajes no se vuelven > polimòrficos, de modo que volvemos a lo mismo: El polimorfismo y que el > còdigo no esté repetido. > Los "accessors" no resuelven el problema de la encapsulaciòn y la herencia. > La herencia rompe la encapsulaciòn porque las clases derivadas se rompen > cuando una clase base es modificada (si se cambian sus variables de > instancia por ejemplo). Accesors màs o accesors menos, las clases derivadas > dejan de funcionar de todas maneras, por eso son tan importantes las pruebas > unitarias. > > Saludos, > Guillermo. > 2008/9/11 Andres Valloud <[EMAIL PROTECTED]> >> >> Me parece rarisimo que se hable de enseñar objetos y no se mencione la >> palabra mensaje ni una vez. Ademas, me parece que al polimorfismo le >> falta algo... no me parece que sea solo herencia + encapsulacion. >> Finalmente, lo que a mi gusto rompe la encapsulacion con herencia es >> codigo mal escrito. Si uno usa accessors no hay (creo) problemas. >> >> Andres. >> >> 2008/9/11 Guillermo Schwarz <[EMAIL PROTECTED]>: >> > Estoy 100% de acuerdo contigo aunque puede que no estés 100% de acuerdo >> > conmigo... ;-) >> > >> > Supongo que el problema es la manera en que se enseña orientación a >> > objetos: >> > >> > OO = Herencia + Encapsulación + Polimorfismo >> > >> > Polimorfismo = Herencia + Encapsulación >> > >> > => OO = 2 * Polimorfismo >> > >> > Luego se enteran que: >> > >> > Herencia => ! Encapsulación >> > Y colapsan. >> > >> > Lo que yo haría diferente es explicar a los nuevos estudiantes de OO lo >> > siguiente: >> > >> > 1. El punto está en que lo que se quiere lograr es el polimorfismo y el >> > mecanismo para lograr eso podría ser herencia + encapsulación. >> > 2. Como herencia => ! encapsulación, miremos una alternativa que son los >> > proxies. ¿Cómo podemos hacer todo con proxies en vez de herencia? >> > >> > Entonces la idea de los traits parece una buena idea. Si se usa un >> > compilador o no ya es otro cuento. >> > >> >> >> Guillermo Schwarz >> Sun Certified Enterprise Architect >> >> >> > --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] http://www.clubSmalltalk.org -~----------~----~----~----~------~----~------~--~---
