Ver Mensaje Individual
  #14  
Antiguo 12-05-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Gracias!, Ahí voy

Para empezar quiero comentar que desde mi punto de vista personal cuando uno comienza a diseñar una aplicación con las técnicas de orientación a objetos (si gustan con o herramientas UML o simplemente haciendo dibujitos en papel) uno no se refiere a un lenguaje de programacón en particular. Por ello pienso que elargumento de que "estamos programando para Windows, utilizando Delphi" no es del todo válido.

Durante el diseño y análisis de la aplicación, si realmente empleamos técnicas OOP (y no digo que yo lo haga así de ordenadito) hablamos de objetos, relaciones entre ellos y los mensajes que se mandan unos a los otros.

En segundo lugar, todo esto del abrigo (y por favor cambien de ejemplo pues aca estamos a 30 grados centigrados :P) tiene un poco de trampa. Cuando llamamos un método de un objeto, no podemos saber, precisamente por el encapsulamiento, de que manera el objeto va a procesar el método. Quizá, al igual que hace Windows, almacene algunas llamadas, o efectos de las llamadas, en alguna cola. Quizá incluso el objeto maneje "threads" internamente para procesar asíncronamente algunas cosas.

El encapsulamiento se da en cualquier caso. No hay mucha diferencia entre estas dos llamadas:

Código:
Rectangulo.Paint;
SendMessage(Rectangulo, WM_PAINT)
En ninguno de los dos casos sabemos internamente lo que hara el objeto Rectangulo para procesar el mensaje.

Incluso, ya hablando específicamente de Delphi, muchas llamadas a métodos se traducen en llamadas a SendMessage, allá muy en el fondo del VCL.

// Saludos
Responder Con Cita