Ed
há 2 anos
Vamos analisar cada uma das alternativas para identificar a correta em relação à classe NomeModel: (A) violar as regras de encapsulamento adotadas pela classe, ao utilizar o atributo interno nome, em getNome; - Essa opção sugere que o método getNome está acessando diretamente o atributo nome, o que pode ser uma violação de encapsulamento, mas não necessariamente é uma característica da classe. (B) gerenciar o atributo nome como um estado na Activity, bastando instanciar um objeto NomeModel com uso do operador new; - Isso não é uma característica típica de um modelo, pois o gerenciamento de estado geralmente é feito em ViewModels ou Activities. (C) manter o valor interno inalterado no método setNome, apesar da chamada para setValue, já que o atributo foi definido como final; - Se o atributo é final, não pode ser alterado, mas isso não é uma característica desejável para um método set. (D) retornar um objeto LiveData, no método getNome, permitindo a alteração do valor de nome, ao nível da Activity, com a invocação do método setValue; - Essa opção é consistente com a arquitetura MVVM, onde LiveData é usado para observar mudanças de dados. (E) requerer uma chamada para o método observe, no uso de getNome, com a passagem da referência para a Activity e de um operador lambda, efetuando a atualização da interface sempre que o valor interno for alterado. - Essa opção descreve um comportamento esperado ao usar LiveData, mas não é uma característica da classe em si. Após essa análise, a alternativa que melhor descreve uma característica da classe NomeModel, especialmente em um contexto de arquitetura que utiliza LiveData, é a (D): retornar um objeto LiveData, no método getNome, permitindo a alteração do valor de nome, ao nível da Activity, com a invocação do método setValue.
Cadastre-se ou realize login
Mais perguntas desse material