Junior — Middle
É necessário conectar diretamente a camada de serviço à interface do utilizador?
sobes.tech IA
Resposta da IA
A ligação direta entre a camada de serviço e a interface de utilizador geralmente não é recomendada. É melhor usar uma camada intermédia — por exemplo, ViewModel ou Presenter, que é responsável por preparar os dados e a lógica de interação.
Razões:
- Separação de responsabilidades: UI é responsável por exibir, o serviço pela lógica de negócio.
- Testabilidade: é mais fácil testar a lógica de negócio separadamente da UI.
- Manutenção: alterações no serviço não afetam diretamente a UI e vice-versa.
No Android, muitas vezes é utilizado o padrão arquitetónico MVVM, onde o ViewModel liga a UI e os serviços, fornecendo dados numa forma conveniente para exibição.
Exemplo:
class UserViewModel(private val userService: UserService) : ViewModel() {
val userData = MutableLiveData<User>()
fun loadUser(userId: String) {
viewModelScope.launch {
val user = userService.getUser(userId)
userData.postValue(user)
}
}
}
// Em uma Activity ou Fragment, subscreve-se a userData e atualiza a UI