Hola Diego,

Diego Gomez Deck escribió:
El emisor instancia un ENVIO de mensaje, no el mensaje en si.
  
mmmm... a ver si nos entendemos... para MI, esto es instanciar un mensaje:

Message
            receiver: self
            selector: #triggerEvent:
            arguments: #(#closeApplication)

Estamos de acuerdo? O a esto vos le llamás instanciar el ENVÍO de un mensaje?

Bueno, como te decía antes, un envío de mensaje es una cosa, y el
mensaje en si es otra... vamos a un ejemplo:


Mensaje:
--------

#baila -> cuando el receptor recibe el mensaje #baila este (el receptor)
baila un tango.
  
Este sería el selector del mensaje (falta el receptor y los argumentos) ;-)

Envío de Mensaje:
-----------------

diego baila.  -> esto es un envío del mensaje #baila, particularmente a
diego.
  

De acuerdo!
Message
            receiver: diego
            selector: #baila
            arguments: #()

Por lo que entiendo, según lo que decís la instanciación de un mensaje significa el ENVÍO pero no significa su ejecución? Entonces el mensaje no es un mensaje hasta no se le envíe el mensaje perform? ;-)



Una implementación del mensaje (aka un Método):
-----------------------------------------------

PesimoBailador>>baila
   "Los pésimos bailadores no hacemos mas que mover las manos"

   self manos mover.
  
Ok, lo que no comparto para nada es el comentario :-)
Depende que estés leyendo.  ¿Que querés saber?, opciones:

- Que tendría que hacer *cualquier* objeto cuando recibe un envío de
mensaje particular. Me refiero a un comentario del tipo "Los objetos
bailan cuando reciben este mensaje".

- Que hace UN objeto en particular cuando recibe el mensaje.  Un
comentario tipo "Los pésimos bailadores sólo sabemos mover las manos".

- O como se baila para un determinado objeto:  Para que el receptor
baile, tenemos que enviar el mensaje #mover a las manos.
  

No me convencen las propuestas anteriores, el comentario debe explicar QUÉ hace ese objeto al recibir ese mensaje. De manera única para cualquier objeto que lo reciba. El tema de CÓMO lo hace ya no pertenece al comentario del mensaje, ya sería comentario de implementación del método, y acá ya nos metemos en otro tipo de comentarios, en los cuales estoy de acuerdo en que "casi" no deberían existir, puesto que si tenemos que comentar cómo estamos haciendo las cosas es un fuerte indicador de que estamos en presencia de un método engorroso. Se entiende? Por ejemplo, supongamos que tenemos:
Bailador
    BailadorPesimo
    BailadorProfesional

El Comentario del mensaje baila será el mismo para los tres, independientemente de su implementación (método asociado). Y en este caso, en Bailador, aparte del comentario del mensaje, agregaría un comentario implementativo, por ejemplo:

Bailador>>destreza
    "Devuelve la destreza que caracteriza al receptor.
    NOTA: Este método debería estar implementado en las subclases."
   
    self subclassResponsibility

Seguramente me dirás que se duplican los comentarios y la respuesta es SÍ, IMHO el comentario de los mensajes es EL MISMO independientemente de su implementación
Pero, si documentamos la intención del mensaje, tenemos que administrar
la duplicación.
      
Y donde comentás un mensaje?
    

En el Smalltalk actual no hay donde hacerlo, por eso que asumo que si
comentamos mensajes vamos a tener que sufrir la duplicación.
  

Y si, se puede hacerlo en la implementación de cada método con lo que como bien decís se duplica, pero es justo y necesario. :-)

Entonces hay otra duplicación: El comentario vs. la implementación del
método.
  
No, si se comenta la implementación del método esta NO debería ser la misma en distintas implementaciones.

Comentados saludos,
  
Guiye>>saludos
    "Devuelve un saludo dependiendo del interlocutor actual del receptor."
    "NOTA: Este método lo implementamos con un hermoso CASE para el desagrado de todo Smalltalker :-)"
    
    ^self interlocutor esAmigo
       ifTrue: [self fuerteAbrazo]
       ifFalse: [self interlocutor esConocido
                    ifTrue: [self saludosCordiales]
                    ifFalse: [self interlocutor esParienteLejano
                                    ifTrue: [....]
                                    ifFalse: [...]]]
-- Diego
  
Abrazo! Guiye

--~--~---------~--~----~------------~-------~--~----~
  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.
-~----------~----~----~----~------~----~------~--~---

Responder a