Sobes.tech
Junior — Middle

Pode falar sobre a sua experiência no desenvolvimento e implementação de soluções arquitetónicas baseadas em MVP?

sobes.tech IA

Resposta da IA

Na arquitetura MVP (Model-View-Presenter), dividi a responsabilidade entre as camadas:

  • Model — responsável pelos dados e lógica de negócio.
  • View — exibe os dados e interage com o utilizador.
  • Presenter — intermediário entre o Model e a View, processa a lógica de apresentação e ações do utilizador.

Nos projetos, implementei MVP para melhorar a testabilidade e manutenção do código. Por exemplo, o Presenter não contém dependências do Android, permitindo escrever testes unitários sem um emulador.

Exemplo de um Presenter simples:

interface View {
    fun mostrarDados(dados: String)
    fun mostrarErro(mensagem: String)
}

class Presenter(private val view: View, private val model: Model) {
    fun carregarDados() {
        try {
            val dados = model.obterDados()
            view.mostrarDados(dados)
        } catch (e: Exception) {
            view.mostrarErro(e.message ?: "Erro")
        }
    }
}

Este método ajuda a separar a interface de utilizador e a lógica, facilitando a manutenção e expansão da aplicação.