Cuando queremos que un objeto responda a mensajes que no están en su protocolo, implementamos el método #doesNotUnderstand: (dnu) y ahi agregamos comportamiento. Eso es típico en proxies. IMHO esto se vería muy mejorado si todos los mensajes del sistemas pasaran por un dispatcher previo, que no solo hiciera evitar este truco del dnu, sino que también pudiera delegar la resolución del mensaje a cualquier otro método de cualquier otra clase. Ni mixins, ni traits, ni herencia mútiple a la C++ me convencieron nunca. Comparto la idea de que el problema existe y que jerarquías como Stream lo demuestran, pero creo que la solución es mas simple que las sofisticaciones que se proponen. Simplemente sacando esta funcionalidad de la VM tendríamos todo sin alterar la esencia del ambiente. En la soluciones tradicionales a este problema se tiende a hacer mas complejo el lookup, en cambio creo que habría que orientarnos a desacoplar mas el mensaje del método, los objetos deberían contestar mas seguido a mensajes que no son parte de su protocolo.
Saludos, Diego On Nov 3, 7:06 pm, "Guillermo Schwarz" <[EMAIL PROTECTED]> wrote: > ¿Qué es dnu? > > No conozco un lenguaje OO que implemente bien la herencia múltiple. Ni C++ > ni Eifel caen en esa categoría. > > Para implementar alternativas a la herencia múltiple en Smalltalk existen: > > 1. Los mixins. > 2. Los traits. > > Hasta donde he visto los mixins no funcionan tan bien como los traits. > > Saludos, > Guillermo. > > On 11/3/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > > > > > > El hecho de que #lookup no esté implementado fuera de la VM es una da > > las grandes falencias de Smalltalk a mi entender. Si eso fuera asi > > tendríamos herencia mútiple (mas sofisticada), no haríamos abuso de > > dnu, no usaríamos proto-objects para hacer proxies, los proxies > > podrían ser mas sofisticados, bajaríamos la cantidad de argumentos en > > muchos métodos y principalmente habría muchas mas opciones de diseño > > que hoy no existen por esa fuerte y prohibitiva relación entre > > mensajes y métodos. Hay buenas razones relacionadas con los actuales > > diseños de VMs para que eso no sea como quisiera, supongo que habría > > que modificar muy a fondo las cosas para repararlo. > > > Diego- Hide quoted text -- Show quoted text - --~--~---------~--~----~------------~-------~--~----~ Ha recibido este mensaje porque está suscrito a Grupo "clubSmalltalk" de Grupos de Google. Si quieres publicar en este grupo, envía un mensaje de correo electrónico a [email protected] Para anular la suscripción a este grupo, envíe un mensaje a [EMAIL PROTECTED] Para obtener más opciones, visita este grupo en http://groups-beta.google.com/group/clubSmalltalk?hl=es. -~----------~----~----~----~------~----~------~--~---
