Pular para o conteúdo principal

Questão de Arquitetura de Software — Arquitetura em camadas — VUNESP 2024

Arquitetura de SoftwareArquitetura em camadas
Código
vu081400
Banca
VUNESP
Órgão
Câmara de Campinas - SP
Ano
2024
Nível
Superior
Cargo
Analista Legislativo - TI
Uma arquitetura recomendada para aplicativos Android baseia-se em 3 camadas: interface de usuário (UI), domínios e dados. Nesse contexto, a camada de domínios
  1. Aconsiste no back-end em nuvem de um aplicativo on-line.
  2. Bé responsável por encapsular a lógica de negócios que é reutilizada por vários ViewModels.
  3. Ctem esse nome porque é responsável por resolver consultas de domínio DNS para que o front-end acesse o back-end.
  4. Dé composta por repositórios que podem conter de zero a várias fontes de dados.
  5. Econsiste em um mecanismo de persistência de dados que dá apoio à camada de dados.
Revelar gabarito e comentário

GabaritoB — é responsável por encapsular a lógica de negócios que é reutilizada por vários ViewModels.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Arquitetura em camadas no Android: camada de domínios

Gabarito: letra B. Na arquitetura recomendada para aplicativos Android (UI, domínio, dados), a camada de domínios é responsável por encapsular a lógica de negócios reutilizável por vários ViewModels. Ela contém os casos de uso (use cases) que orquestram o fluxo de dados entre UI e Data, mantendo a independência de frameworks e promovendo a testabilidade.

A banca testa o conhecimento da função de cada camada, especialmente o papel central da camada de domínio como portadora das regras de negócio que podem ser compartilhadas entre diferentes ViewModels.

Camada

Função Principal

Componentes Típicos

Relação com outras camadas

UI (Interface de Usuário)

Exibir dados e capturar interações do usuário

Activities, Fragments, ViewModels, Composables

Consome dados da camada de domínio via ViewModels

Domínios

Encapsular lógica de negócios reutilizável

Casos de uso (Use Cases), entidades de domínio

Orquestra fluxo entre UI e dados; independe de frameworks

Dados

Gerenciar fontes de dados e persistência

Repositórios, DAOs, fontes remotas/locais

Fornece dados para a camada de domínio via interfaces

1Responsabilidade
Encapsula lógica de negócios
Reutilizada por vários ViewModels
Contém casos de uso (use cases)
2Relação com outras camadas
UI → Domínio → Dados
Interage com repositórios por interfaces
Não contém repositórios
3O que NÃO é
Back-end em nuvem
Resolução de DNS
Mecanismo de persistência
Camada de domínios (Android)
LEVELsoulevel.com.br
Camada de domínios (Android): Responsabilidade (Encapsula lógica de negócios, Reutilizada por vários ViewModels, Contém casos de uso (use cases)); Relação com outras camadas (UI → Domínio → Dados, Interage com repositórios por interfaces, Não contém repositórios); O que NÃO é (Back-end em nuvem, Resolução de DNS, Mecanismo de persistência)

Alternativa A — ❌ Incorreta

Afirma que a camada de domínios consiste no back-end em nuvem. Isso é incorreto: o back-end está fora do aplicativo e não faz parte da arquitetura interna de camadas. A camada de domínios reside no lado cliente e contém a lógica de negócios, não serviços remotos.

Alternativa B — ✅ Correta ⟵ GABARITO

Descreve exatamente o papel da camada de domínios: encapsular a lógica de negócios que é reutilizada por vários ViewModels. ViewModels usam os casos de uso (presentes na camada de domínio) para transformar dados da camada de dados em informações prontas para a UI. É o centro das regras do aplicativo.

Alternativa C — ❌ Incorreta

Confunde "domínio" com "DNS" (Domain Name System). A camada de domínios não tem relação com resolução de DNS; esse é um serviço de rede. O termo “domínio” aqui refere-se ao domínio do problema (business domain), não ao sistema de nomes.

Alternativa D — ❌ Incorreta

Atribui à camada de domínios a composição por repositórios. Na verdade, os repositórios fazem parte da camada de dados. A camada de domínios interage com os repositórios através de interfaces (dependências invertidas), mas não os contém.

Alternativa E — ❌ Incorreta

Diz que a camada de domínios é um mecanismo de persistência que apoia a camada de dados. O contrário é verdadeiro: a camada de dados lida com persistência e fornece dados; a camada de domínios orquestra esses dados. Persistência é responsabilidade da camada de dados.

Gabarito: letra B.

Link permanente: /questoes/vu081400