1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

MVC vs MVP

Discussão em 'Programação' iniciada por MimiPT, 21 de Fevereiro de 2013. (Respostas: 5; Visualizações: 1593)

  1. Oi pessoal! Sou estudante de Engenharia Informática e no âmbito de uma disciplina de Metodologias de Programação III, estou a realizar uma pesquisa acerca do Modelo Arquitectónico MVP. Já descobri que tanto MVC como MVP são idênticos, apenas diferem no Controller e no Presenter. O MVP veio dar resposta às insuficiências do MVC, quando aplicada a componente baseada em interfaces gráficas do usuário. Com os sistemas GUI, eles próprios controlam o input do usuário, com movimentos e cliques de rato, em vez de utilizar um controlador central. É isto, ou estou enganada? Gostaria que dessem a vossa opinião acerca destes dois modelos e, se possível que me aconselhassem alguns links que achem relevantes para o estudo deste tema! Obrigado! :-)
     
  2. nfk

    nfk Power Member

    O MVC é muito usado em aplicações web. Do MVP nunca tinha ouvido falar. Encontras muita informação na Internet, mas para ter uma primeira ideia, já filtrada e validada por outras pessoas, sites como o Stack Overflow podem ser um bom local de partida para pesquisas. Por exemplo, aqui:

    http://stackoverflow.com/questions/2056/what-are-mvp-and-mvc-and-what-is-the-difference

    Já agora, se quiseres explorar alternativas fora desses modelos há este artigo interessante sobre o padrão hexagonal, ou ports-adapters:

    http://alistair.cockburn.us/Hexagonal+architecture
     
  3. Karmack

    Karmack Power Member

    Pelo que percebi do artigo no Wikipedia, no Presenter programas toda a logica de apresentação e não uma parte como pode acontecer no MVC. Por exemplo precisas de apresentar uma lista de pessoas nascidos em 1990 e que tenham carta de condução. Em muitas arquitecturas esta lista é obtida no modelo de dominio (o Model) ou seja tens na classe Pessoa um metodo estatico do genero readAllPersonsWithLicenseCardBirthInYear(Integer year). No Controller invocas esse metodo para obter a lista e apresentar na View.

    O problema com esta arquitectura é que rapidamente enches o modelo de dominio com logica usada exclusivamente na apresentação e consequentemente o modelo torna-se muito confuso e extenso. No MVP o tal metodo estatico fica no Controlador (no Presenter) em vez de estar na classe Pessoa (que é dominio ou Model). Assim tens uma separação clara do que é logica de dominio e logica de apresentação. Claro que haverá casos que alguma logica será necessária no dominio e na apresentação (como por exemplo obter todas as pessoas: um "readAll") pelo que pode ficar no dominio.
     
  4. Obrigado nfk e karmak pela ajuda! :) já agora, poderiam disponibilizar-me alguns links ou trechos de código de algum exemplo académico, ou não, de fácil compreensão, pois ainda não estou muito familiarizada com a linguagem C#. De preferência, da parte do Presenter, pois é a parte do modelo arquitectónico em que estou mais focada. Obrigado.
     
    Última edição: 28 de Fevereiro de 2013
  5. Karmack

    Karmack Power Member

    MVC e MVP são padrões de desenho usados na programação orientada por objectos, que é um paradigma e não uma linguagem de programação. O que é que isto tem haver com o facto de não estares familiarizada com C#?
     
  6. Penso que não me expliquei bem, peço desculpa! Eu sei que MVP e MVC não são liguagens de programação. O que eu gostaria é de trechos de código que se adequem ao MVP, para eu tentar entender qual o papel do Model da View e do Presenter/Controller no programa em si! Obrigado.
     

Partilhar esta Página