Middle
O que é o padrão de arquitetura MVP?
sobes.tech IA
Resposta da IA
O MVP (Model-View-Presenter) é um padrão arquitetónico para separar a lógica de negócio, os dados e a interface de utilizador.
Componentes-chave:
- Model: Representa os dados e a lógica de negócio. Não tem conhecimento da View ou do Presenter.
- View: Mostra os dados, fornece a interface de utilizador e encaminha as ações do utilizador para o Presenter. Não contém lógica de negócio. A View é passiva e apenas mostra os dados recebidos do Presenter.
- Presenter: Atua como intermediário entre o Model e a View. Processa os eventos da interface de utilizador, extrai dados do Model e atualiza a View. O Presenter contém a lógica de apresentação, mas não a lógica de negócio. Gerencia o estado da View.
Interação:
- O utilizador interage com a View.
- A View delega a ação ao Presenter.
- O Presenter processa a ação:
- Atualiza o Model se necessário.
- Solicita dados ao Model.
- Atualiza a View com os novos dados.
Vantagens:
- Melhor testabilidade (o Presenter e o Model podem ser testados independentemente da View).
- Separação de responsabilidades.
- Melhor manutenção.
Exemplo (esquema):
// Modelo
class DataModel {
getData() {
// ... lógica para obter dados ...
return { message: "Olá do modelo!" };
}
}
// Visão (pseudo-código UI)
class TextView {
display(data) {
// Atualizar o texto na tela
console.log(data.message);
}
onClickButton(handler) {
// Anexar manipulador ao botão
}
}
// Apresentador
class Presenter {
constructor(model, view) {
this.model = model;
this.view = view;
this.view.onClickButton(this.handleButtonClick.bind(this)); // Ligação do evento
}
handleButtonClick() {
const data = this.model.getData();
this.view.display(data);
}
}
// Uso
const model = new DataModel();
const view = new TextView(); // Visão real de UI
const presenter = new Presenter(model, view);