O que MVVM? Entenda o Model-View-ViewModel

MVVM separa a interface (View) da lógica (Model) em softwares. A ViewModel atua como ponte entre View e Model, gerenciando a interação e o fluxo de dados. Isso torna o código mais organizado, testável e reutilizável.

MVVM é um padrão de design para separar interface, lógica e dados em softwares. A View é a interface gráfica, a ViewModel liga a View à Model, que contém a lógica e os dados.

Resposta Rápida

MVVM é um padrão de arquitetura que separa interface, lógica e dados em três componentes: Model (dados e regras de negócios), View (interface do usuário) e ViewModel (intermediário que gerencia a lógica de apresentação). Desenvolvido pela Microsoft para WPF e Silverlight, utiliza data binding bidirecional para sincronização automática. Seu objetivo central é desacoplar a UI da lógica, permitindo maior testabilidade, manutenibilidade e reutilização de código. O ViewModel expõe dados específicos para a View sem depender dela, reduzindo acoplamento.

Direto ao ponto, sem perda de tempo! Resumo descritivo, conceitual e com aquilo que é mais relevante no artigo.

O que é MVVM – Model View ViewModel?

Model-view-viewmodel (MVVM) é um padrão de arquitetura de software ou esquema de design de software. É uma variante do padrão “Presentation Model Design” de Martin Fowler.

O MVVM abstrai o status “view” e o comportamento. Enquanto o modelo de “apresentação” abstrai uma visão (cria um modelo de visão) de uma maneira que não depende de uma plataforma de interface de usuário específica.

Model-view-viewmodel (MVVM) é um padrão de arquitetura de software ou esquema de design de software. É uma variante do padrão Presentation Model Design de Martin Fowler.
Model-view-viewmodel (MVVM) é um padrão de arquitetura de software ou esquema de design de software. É uma variante do padrão Presentation Model Design de Martin Fowler.

O MVVM foi desenvolvido por Ken Cooper e Ted Peters da Microsoft para simplificar a programação de eventos de interfaces de usuário usando recursos do Windows Presentation Foundation (WPF) (Microsoft .NET Graphical System) e do Silverlight (Derivative Internet Application).

O padrão arquitetônico foi anunciado pela primeira vez no blog John Gossman em 2005.

Model (modelo)

  • O modelo no MVVM é uma implementação do modelo de domínio do aplicativo que inclui um modelo de dados juntamente com a lógica de negócios e a lógica de validação.
  • Exemplos de objetos de modelo incluem repositórios, objetos de negócios, objetos de transferência de dados (DTOs), objetos CLR antigos e simples (pocos) e objetos gerados por entidades e proxy.

View (visão)

  • A visão é responsável por definir a estrutura, o layout e a aparência do que o usuário vê na tela.
  • Idealmente, a exibição é definida exclusivamente com XAML, com um número limitado de code-behinds que não contém lógica de negócios.

ViewModel

  • O modelo de visão age como um intermediário entre a visão e o modelo, e é responsável por gerenciar a lógica da visão.
  • Geralmente, o modelo de visualização interage com o modelo invocando métodos nas classes de modelo.
  • O modelo de vista, em seguida, fornece dados do modelo em uma forma que a visão pode facilmente usar.

Binder (fichário)

  • O mecanismo fundamental para esse padrão com o qual o modelo de exibição e a exibição são constantemente sincronizados.
  • Geralmente por meio de uma sintaxe declarativa dentro da própria exibição.
  • Isso implica que as alterações nos dados feitas pelo usuário por meio da visualização serão relatadas automaticamente no modelo de visualização. Sem esse ônus para o desenvolvedor.

Da mesma forma, quaisquer alterações feitas nos dados contidos no modelo de exibição serão representadas automaticamente na exibição.

Mais livros e downloads relacionados

A seguir, recomentamos outros artigos e livros sobre engenharia de software, com discussões essenciais para o sucesso de qualquer projeto de desenvolvimento de software.

Glossário de Termos

MVVM

Padrão de arquitetura de software que separa a interface (View), lógica de apresentação (ViewModel) e dados/lógica de negócios (Model), usando data binding para sincronização automática entre componentes.

Data Binding

Mecanismo de sincronização automática entre a interface (View) e a lógica de apresentação (ViewModel) no padrão MVVM, permitindo atualizações bidirecionais sem código manual.

ViewModel

Componente intermediário no padrão MVVM que gerencia a lógica de apresentação, transformando dados do Model para a View e encapsulando ações da interface.

Presentation Model

Padrão de arquitetura que separa a lógica de apresentação da interface do usuário, servindo como intermediário entre a view e o modelo de dados.

WPF (Windows Presentation Foundation)

WPF é um framework para criar interfaces de usuário em aplicações Windows, utilizando XAML para definição declarativa de UI e suporte a data binding para sincronização automática entre componentes.

INotifyPropertyChanged

Interface que permite notificar mudanças em propriedades de um objeto, essencial para sincronização automática entre View e ViewModel no MVVM. Definição objetiva com contexto técnico, uso prático e relação direta com o artigo.

Separation of Concerns (SoC)

Princípio de design que divide um sistema em componentes distintos, cada um com responsabilidades específicas, facilitando manutenção, testabilidade e reutilização. Definição objetiva com contexto técnico, uso prático e relação direta com o artigo.

Binder

Mecanismo de sincronização automática entre a View e o ViewModel, permitindo atualizações bidirecionais sem código manual. No MVVM, é implementado via data binding.

XAML

Linguagem de marcação declarativa usada para definir interfaces de usuário em WPF e Silverlight, permitindo a criação de layouts e estilos sem código imperativo.

ICommand

Interface no .NET que define um padrão para encapsular ações executáveis, permitindo a associação de comandos a eventos de interface do usuário, como cliques de botão, facilitando a implementação de lógica de interação no MVVM.

Testabilidade

Capacidade de um sistema ou componente ser testado de forma isolada, garantindo que a lógica de apresentação (ViewModel) possa ser verificada sem depender da interface do usuário (View).

Code-behind

Code-behind refere-se ao código imperativo escrito em arquivos separados (e.g., .cs em WPF) para manipular a interface do usuário, geralmente evitado no MVVM para manter a separação clara entre View e lógica de apresentação.

Dicíonario de Termos: definições diretas e concisas de termos técnicos, jargões, siglas, abreviações e outros termos específicos do setor.

Perguntas Frequentes

O que é MVVM?

MVVM é um padrão de arquitetura de software que separa a interface (View), a lógica de apresentação (ViewModel) e os dados/lógica de negócios (Model).

Quais são os componentes principais do MVVM?

Os componentes principais do MVVM são Model, View, ViewModel e Binder.

Qual é a função do ViewModel no padrão MVVM?

O ViewModel atua como intermediário entre a View e o Model, gerenciando a lógica da visão e fornecendo dados em um formato que a View pode usar facilmente.

O que é o Binder no contexto do MVVM?

O Binder é o mecanismo que sincroniza automaticamente as alterações entre a View e o ViewModel, geralmente por meio de uma sintaxe declarativa dentro da própria exibição.

Quem desenvolveu o padrão MVVM?

O padrão MVVM foi desenvolvido por Ken Cooper e Ted Peters da Microsoft para simplificar a programação de eventos de interfaces de usuário usando recursos do Windows Presentation Foundation (WPF) e do Silverlight.

Qual é a vantagem principal do uso do MVVM?

A principal vantagem do MVVM é a separação clara entre interface, lógica e dados, permitindo maior testabilidade, manutenibilidade e reutilização de código.

FAQ: Dúvidas e Perguntas comuns nesse artigo.

Artigos relacionados

Botão Voltar ao topo