Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Temas relacionados > Debates
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 12-05-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 24
andres1569 Va por buen camino
Hola:

Permitidme que tercie en al asunto para dar mi punto de vista. Estoy más con Delphi.com.ar, que argumentó en un principio que debíamos diferenciar entre mensajes y métodos.

Roman escribió :

Cita:
No exactamente. Desde el punto de vista de programación orientada a objetos, los objetos se mandan mensajes unos a otros y la manera de hacerlo, en lenguajes como Delphi, es llamando métodos de un objeto. Cuando ejecutamos ...
Conceptualmente, haciendo abstracción de lenguajes y de Sistemas Operativos, como si estuviéramos escribiendo un libro de programación orientada a objetos, se puede interpretar que un método es un mensaje y viceversa (en última instancia es una acción aplicada a un objeto); pero aquí estamos programando para Windows, utilizando Delphi, y todos sabemos que no es lo mismo enviar un mensaje (SendMessage, PostMessage) que llamar directamente al método. ¿Por qué no es lo mismo? Para empezar, sí creo que afecta, aunque de una forma un tanto sutil, al encapsulamiento. Cuando llamamos a un método de un objeto, directamente ya sabemos de antemano algo del comportamiento de ese objeto. En cierta forma, nos metemos en sus asuntos. Sería algo así como llamar al método PonteElAbrigo de un objeto TPersona; la instruccion Persona.PonteElAbrigo presupone lo que debe hacer la Persona cuando hace frío y lo ejecuta sin más, no le da opción a elegir; sin embargo llamar a un mensaje deja más libertad al objeto. Si hacemos SendMessage (Persona, WM_HaceFrío), el objeto Persona puede reaccionar de diversas formas, seguramente se pondrá el abrigo, o no, y además no tendrá que hacerlo al primer aviso, podrá primero escuchar a otros mensajes (no hay que olvidar que los mensajes pueden ser asíncronos).

Siempre será más genérico enviar un mensaje que llamar directamente al método.

Quizás Roman estés pensando en un método TPersona.HaceFrio, que haga lo mismo que su mensaje homólogo, pero si os dais cuenta estamos creando un método para algo que no debería contemplar una TPersona, sino que es un acontecimiento externo(casi mejor dicho un evento).

CONCLUSION: Por norma general, los mensajes notifican eventos, cosas que pasan, y los métodos actúan en consecuencia. En un sistema democrático se envía un mensaje a un objeto (eso sí los mensajes pueden ser falsos); en una dictadura (y el programador de un aplicación lo es cuando escribe Query.Close) se llama directamente a los métodos, guste a o no.

Saludos, y a continuar con estas disquisiciones.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:19:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi