Padrões Arquiteturais: MVC e MVVM
Gabarito: letra E. O primeiro padrão descrito é o MVC (Model-View-Controller), que separa a lógica de apresentação (View) da lógica de negócios (Model) por meio de um Controlador, promovendo reutilização e manutenibilidade. O segundo padrão é o MVVM (Model-View-ViewModel), que distribui a lógica de negócios em componentes independentes (ViewModel), permitindo escalabilidade e modularidade, especialmente em aplicações com data-binding.
A questão cobra a identificação de dois padrões arquiteturais amplamente utilizados no desenvolvimento de software. A banca espera que o candidato conheça as finalidades principais de cada padrão, diferenciando-os de outros padrões de projeto (criacionais, estruturais ou comportamentais).
Alternativa A — ❌ Incorreta
O MVP (Model-View-Presenter) também separa apresentação da lógica de negócios, mas é mais focado em testabilidade unitária; já o Observer é um padrão comportamental (GoF) que define uma dependência um-para-muitos entre objetos, não sendo um padrão arquitetural para distribuir lógica de negócios em componentes independentes.
Alternativa B — ❌ Incorreta
Singleton é um padrão criacional que garante uma única instância de uma classe; Factory é outro padrão criacional para encapsular a criação de objetos. Nenhum dos dois é utilizado para separar apresentação de lógica de negócios ou distribuir lógica em componentes independentes como descrito.
Alternativa C — ❌ Incorreta
Decorator é um padrão estrutural que adiciona responsabilidades a objetos dinamicamente; Adapter é estrutural e permite que interfaces incompatíveis trabalhem juntas. Ambos não se aplicam à separação apresentação/negócios ou à distribuição de lógica de negócios.
Alternativa D — ❌ Incorreta
Proxy é um padrão estrutural que controla o acesso a um objeto; Bridge separa uma abstração de sua implementação. Embora Bridge possa ajudar na modularidade, não é um padrão arquitetural voltado para a separação apresentação/negócios ou distribuição de lógica de negócios em componentes independentes.
Alternativa E — ✅ Correta ⟵ GABARITO
O MVC (Model-View-Controller) é um padrão arquitetural clássico que separa a lógica de apresentação (View) da lógica de negócios (Model) por meio do Controlador. O MVVM (Model-View-ViewModel) evolui essa separação, introduzindo o ViewModel como um intermediário que expõe dados e comandos, permitindo que a lógica de negócios seja distribuída em componentes independentes, facilitando a escalabilidade e modularidade, especialmente em frameworks reativos.
Gabarito: letra E.