Diferença entre mvc e mvp

Todos eles têm em comum as duas primeiras letras (MV), depois diferem nas letras finais.

Em uma observação mais séria, eles são chamados de padrões de arquitetura de software, representando soluções que podem ser reutilizadas para problemas comuns na arquitetura de software.

MVC, ou

Model-View-Controller

, é um padrão de arquitetura comumente usado para desenvolver interfaces com o usuário que divide um aplicativo em três partes interconectadas. Isso é feito para separar representações internas de informações das formas como as informações são apresentadas e aceitas pelo usuário. O padrão de design do MVC desacopla esses componentes principais, permitindo a reutilização eficiente de código e o desenvolvimento paralelo.

Tradicionalmente usada para interfaces gráficas de usuário (GUIs) da área de trabalho, essa arquitetura se tornou popular para projetar aplicativos da Web e até mesmo para dispositivos móveis, desktop e outros clientes. desenvolvimento.

(

Fonte da imagem

)

Existem três componentes lógicos principais.

O modelo é o componente central do padrão. É a estrutura de dados dinâmicos do aplicativo, independente da interface do usuário. Ele gerencia diretamente os dados, lógica e regras do aplicativo.

Uma visualização pode ser qualquer representação de saída de informações, como um gráfico ou diagrama. São possíveis várias visualizações da mesma informação, como um gráfico de barras para gerenciamento e uma exibição tabular para contadores.

A terceira parte ou seção, o controlador, aceita entrada e a converte em comandos para o modelo ou visualização.

O design do modelo-vista-controlador define as interações entre os componentes.

O modelo é responsável por gerenciar os dados do aplicativo. Ele recebe a entrada do usuário do controlador.

A visualização apresenta o modelo em um formato específico.

O controlador responde à entrada do usuário e executa interações nos objetos do modelo de dados. O controlador recebe a entrada, opcionalmente a valida e depois passa a entrada para o modelo.

Aqui está o vídeo que fornece explicações simples sobre o MVC:


o

Model-view-apresentador

(MVP) é uma derivação do padrão arquitetural do MVC e é usado principalmente para a construção de interfaces com o usuário. No MVP, o apresentador assume a funcionalidade do "intermediário". No MVP, toda a lógica de apresentação é enviada ao apresentador.

O MVP é um padrão de arquitetura da interface do usuário projetado para facilitar o teste de unidade automatizado e melhorar a separação de preocupações na lógica de apresentação:

O modelo é uma interface que define os dados a serem exibidos ou sobre os quais atuam na interface do usuário.

A exibição é uma interface passiva que exibe dados (o modelo) e roteia comandos do usuário (eventos) para o apresentador para atuar com base nesses dados.

O apresentador age de acordo com o modelo e a vista. Ele recupera dados de repositórios (o modelo) e os formata para exibição na exibição.

(Fonte da imagem:

Existe algum padrão de design, exceto o MVC para web?

)

Resumindo as diferenças essenciais entre os padrões MVC e MVP:

Padrão MVP
  • A vista é mais fracamente acoplada ao modelo. O apresentador é responsável por vincular o modelo à visualização.
  • Teste de unidade mais fácil porque a interação com a visualização é feita através de uma interface
  • Geralmente, visualize o mapa do apresentador um a um. Visualizações complexas podem ter vários apresentadores.
Padrão MVC
  • Controladores são baseados em comportamentos e podem ser compartilhados entre visualizações
  • Pode ser responsável por determinar qual visualização exibir.

Fonte:

O que são MVP e MVC e qual é a diferença?

o

Model-view-viewmodel

O padrão arquitetural do software (MVVM) facilita a separação do desenvolvimento da interface gráfica do usuário - seja através de uma linguagem de marcação ou código da GUI - do desenvolvimento da lógica de negócios ou da lógica de back-end (o modelo de dados). O modelo de visualização do MVVM é um conversor de valor, o que significa que o modelo de visualização é responsável por expor (converter) os objetos de dados do modelo de forma que os objetos sejam gerenciados e apresentados com facilidade. Nesse aspecto, o modelo de vista é mais modelo que vista e lida com a maioria, se não com toda a lógica de exibição da vista. O modelo de visualização pode implementar um padrão mediador, organizando o acesso à lógica de back-end em torno do conjunto de casos de uso suportados pela visualização.

Esse padrão foi incorporado ao Windows Presentation Foundation (WPF) (sistema de gráficos .NET da Microsoft) e Silverlight (derivado de aplicativo da Internet do WPF).

Model-view-viewmodel também é chamado de model-view-finder, especialmente em implementações que não envolvem a plataforma .NET.

(

Fonte da imagem

)

Em relação aos componentes do padrão MVVM:

O modelo refere-se a um modelo de domínio, que representa conteúdo de estado real (uma abordagem orientada a objetos), ou à camada de acesso a dados, que representa conteúdo (uma abordagem centrada em dados).

A vista

Como nos padrões model-view-controller (MVC) e model-view-apresentador (MVP), a visualização é a estrutura, o layout e a aparência do que o usuário vê na tela. [6] Ele exibe uma representação do modelo e recebe a interação do usuário com a visualização (cliques, teclado, gestos etc.) e encaminha a manipulação deles para o modelo de visualização através da ligação de dados (propriedades, retornos de chamada de eventos etc.) que é definido para vincular a visualização e o modelo de visualização.

O modelo de exibição é uma abstração da exibição que expõe propriedades e comandos públicos. Em vez do controlador do padrão MVC ou do apresentador do padrão MVP, o MVVM possui um fichário, que automatiza a comunicação entre a visualização e suas propriedades associadas no modelo de visualização. O modelo de vista foi descrito como um estado dos dados no modelo. [7]

A principal diferença entre o modelo de exibição e o Presenter no padrão MVP é que o apresentador tem uma referência a uma exibição, enquanto o modelo de exibição não. Em vez disso, uma visualização se liga diretamente às propriedades no modelo de visualização para enviar e receber atualizações. Para funcionar com eficiência, isso requer uma tecnologia de encadernação ou um código padrão para gerar a encadernação.

A pasta

Dados declarativos e ligação de comando estão implícitos no padrão MVVM. Na pilha de soluções da Microsoft, o fichário é uma linguagem de marcação chamada XAML. O fichário libera o desenvolvedor de ser obrigado a escrever a lógica da placa da caldeira para sincronizar o modelo e a visualização da vista. Quando implementada fora da pilha da Microsoft, a presença de uma tecnologia declarativa de ligação de dados é o que torna esse padrão possível, [4] [9] e sem um fichário, normalmente seria usado o MVP ou o MVC e é necessário escrever mais clichê (ou gere-o com alguma outra ferramenta).

Abaixo está um vídeo apresentando o MVVM:

Consulte também os seguintes links úteis relacionados:

Como os padrões MVP, MVC e MVVM se relacionam?

Qual é a diferença entre MVC e MVVM?

Qual é a diferença entre os paradigmas MVP e MVC?

Qual é a diferença entre as estruturas de front-end MVVM e MVP?

10 padrões comuns de arquitetura de software em poucas palavrasIntrodução ao Framework MVCO que é o Model View Presenter?Model-View-ViewModel (MVVM) explicadoPor que o MVVM e quais são seus principais benefícios?

Espero que tenha sido útil.