Implementação do padrão MVP na plataforma XNA

14 views
Skip to first unread message

David Narciso

unread,
Mar 7, 2012, 11:23:57 AM3/7/12
to NetPonto.org - Lista de Discussao Oficial
Ao longo das ultimas semanas tenho vindo a estudar o padrão
arquitectónico Model view controller e as suas derivações em várias
plataformas como XNA, silverlight etc, mas a minha questão prende-se
no padrão Model-View-Presenter e estou com dificuldade em perceber
quem é o responsável pelo controlo do fluxo de dados, no MVC está
explicito que o Controller é responsável por essa tarefa, só que no
MVP tenho visto que essa parte é um bocado subjectiva e muda um pouco
de fonte para fonte.

A minha dúvida é se o presenter assume a função do controller ou se o
model ficaria com essa tarefa.

obrigado desde já e cumprimentos.

Vitor Paulino

unread,
Mar 7, 2012, 12:57:15 PM3/7/12
to netp...@googlegroups.com
Na minha opinião, sim, o acesso a dados deverá ser responsabilidade do model ( digo eu ). 
A implementação com o MVP ou MVC é o de abstrair a camada de apresentação no acesso directo à camada de acesso a dados existindo uma entidade pelo meio que controla essa abstração. 

Costumo usar o MVP com alguma regularidade, e costumo criar entidades ViewModel para alimentar a user interface mantendo assim um maior nivel de desacupulamento entre o Model e a View!  Esta é uma diferença que existe para os modelos n-tier onde os DTO's eram transportados desde a camada de acesso a dados até à user interface ( remember DataSet's and dataTables? )  


2012/3/7 David Narciso <davidg...@gmail.com>

--
Você recebeu esta mensagem por fazer parte da lista de discussão oficial da Comunidade NetPonto (http://netponto.org).

David Narciso

unread,
Mar 7, 2012, 5:54:20 PM3/7/12
to NetPonto.org - Lista de Discussao Oficial
Obrigado Vitor Paulino pela resposta, vamos la a ver se fiquei com as
noções certas.. No MVC a camada VIEW trata da apresentar a informação
e espera pela interacção do utilizador, após feita é notificada a
camada CONTROLLER que controla o fluxo do programa a partir dessa
interacção, envia as mudanças de estado do programa para o MODEL que
por sua vez faz as alterações necessárias no programa e volta para a
VIEW, está correcto ?
Caso esteja adequada esta noção, então a nossa intenção é abstrair
então a camada VIEW da camada MODEL através do CONTROLLER certo ?
Então no MVP o PRESENTER actua igualmente como essa camada de
abstracção, que no seu exemplo são as suas entidades ViewModel ?
E nos modelos n-tier não existia sequer essa camada, os dados
comunicavam directamente sem abstracção se percebi bem..

Desculpe a quantidade de dúvidas, este é um assunto que ainda não
percebo bem como se nota..

cumprimentos e obrigado.

Vitor Paulino

unread,
Mar 8, 2012, 7:07:29 AM3/8/12
to netp...@googlegroups.com

No cenário de uma aplicação web tudo começa com um pedido http ao servidor no qual este é responsável por encaminhar para a aplicação correcta identificada pelo seu url. O pedido ao ser atendido pela aplicação desenvolvida segundo o padrão MVC, o controller é quem recebe esse pedido.O Controller tem de ter a lógica necessaria para controlar a resposta correcta ao pedido, isto é, ir ao model, obter os dados e enviar para a view correcta para esta a renderizar a visualização correcta, o mesmo se passa com o MVP, portanto o termo camadas aqui não se adequa muito bem, eu arrisco mais em usar o termo componente do que camada ! :P  





2012/3/7 David Narciso <davidg...@gmail.com>

David Narciso

unread,
Mar 13, 2012, 10:32:07 AM3/13/12
to NetPonto.org - Lista de Discussao Oficial
Obrigado Vitor pela sua resposta, já entendi a lógica de
funcionamento, acabam por ser bastante parecidas estes padrões de
desenvolvimento de software, muito obrigado pelas respostas ;)

cumprimentos
Reply all
Reply to author
Forward
0 new messages