Translate

martes, 26 de junio de 2012

MVC explicado aun más

Gráfciamente MVC puede entender asi:





Como sería la implementación concreta en Delphi de este principio ?


Muy simple:


TVista.BotonOnClick(Sender: TObject);
begin
  TModelo.Proceso;
end;


TModelo.Proceso;
begin
  .
  .
end;


Notemos que en este ejemplo no hay una clase Controladora .. porque ? .. porque en realidad el Modelo relacional se comunica con las Vista a través las fuentes de datos (clase TDataSource) 


TModelo.Proceso;
begin
  with TablaCliente do
  begin
    DisableControls;
    try
      First;
      while not Eof do
      begin
        .
        .
        Next;
      end;
  finally
    EnableControls;
  end;
end;


Todo programador Delphi conoce esto. El método DisableControls de un descendiente de la clase TDataSet .. en relacion a MVC, desconecta el Modelo de la Vista .. a la manera Delphi.


Inversamente EnableControls, reconecta la Vista con el Modelo, actualizándola segun el estado del TDataSet a ese momento.


De nuevo .. 'donde estan los controladores ?' .. Los controladores existen dentro de los controles de tipo 'data-aware' y 'saben' como refrescar sus vistas.


O sea, para dar un ejemplo .. el componente TDbEdit,  tiene una parte de Vista (la que se ve y se dibuja en el Form que lo contiene) y otra parte de Controlador.



No hay comentarios:

Publicar un comentario