Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 07-07-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Hola Azid, después te pasas por la taberna

Bueno, con respecto al Modelo MVC no lo he llevado a la práctica exactamente y por lo que comprendo (de lo poco que estuve leyendo sobre este modelo) se basa en la idea del Observador.

Por lo que comprendo... una vista notifica (envia un mensaje) al controlador y éste aplica los cambios al modelo. Y si es necesario notificar de algo a la vista, el controlador le hace notificar de ello.

En principio, pareciera ser que el controlador no sabe con que vistas interactuará. Y si es así, lo único que conoce es una "interfaz" común a ellas.
Por lo general, en principio, una implementación de este tipo de patrón lo que hace es que el Controlador mantenga una referencia de los objetos vistas... Yo lo veo así: las vistas se suscriben al controlador. Y éste cuando sea necesario, recorre todos los objetos registrados lanzando el evento adecuado pasando como parámetro el "valor" que sea necesario.

La implementación del evento queda a cargo de cada vista.

Si es asi como debería actuar, me parece entonces que el Controlador no es el experto en información adecuado para crear las vistas. Más bien, el no tiene pleno conocimiento de quienes son ni que hacen. Simplemente el les hace saber que "algo cambió"

Por tu descripción del tema, pareciera ser que lo que deseas es implementar una fábrica de vistas.

Y si uno ideas, pareciera ser que el tema puede venir así:
1. Se cre el controlador
2. Se crea la Fábrica
3. la Fábrica crea la vista
4. La vista creada se registra en la "colección" del Controlador para que este le notifique de los cambios.

Ahora el tema de como hacer la referencia desde la vista al controlador, pareciera ser que sería apropiado que la vista tenga visibilidad de atributo sobre el Conntrolador...

Código Delphi [-]
TVista = class(TForm)
private
  Controler : TControler;
  ...

De modo que cuando desee enviarle un mensaje, la vista pueda recuperar dicha referencia.

Tal vez, sea la fábrica quien le indique a la vista a que controlador referenciar. Por lo poco que se, me resulta que es una buena candidata. Me parece adecuado, al menos por ahora, que al momento de crear la vista, la fábrica le haga saber el controlador. Por lo pronto, yo me hago la idea de esto:

Código Delphi [-]
constructor TVista.Create(Controler: TControler);
begin
  inherited Create;
  FControler := Controler;
  ...
end;

Si el tema de la fábrica es lo que se debería seguirse, me queda ahora la duda ¿Quién es el dueño realmente de las vistas? Una respuesta rápida me indicaría que es TAplication. Después de todo... ¿No es él quien tiene y guarda la referencias a todas la formas que componen a la aplicación?

Pero no se que tan viable, y aplicable, sea esta idea. Reconozco que el patrón Observador y el MVC son todavía de estudio para mi.

No se si te he ayudado o confundido más. Disculpame amigo, pero más no sabría decirte. Tengo que estudiarlo mejor al patrón.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear una clase y asignar objetos como propiedades leanfreue OOP 4 13-04-2007 00:08:33
Instanciar Clase buildero_d OOP 2 05-10-2006 06:12:56
¿alguien conoce el uso de la clase TOwnerCollection? fredo OOP 11 01-08-2005 18:05:56
¿Cómo puedo llamar al método heredado de una clase que no es el ancestro directo? sarackganda OOP 4 15-12-2003 22:19:49
Obtener la clase de objetos Feñiz OOP 7 08-05-2003 20:21:55


La franja horaria es GMT +2. Ahora son las 21:42:52.


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