Um desenvolvedor de sistemas aplicou o Padrão MVC para construir um novo aplicativo Web. No momento, ele está trabalhando na camada MVC que trata da lógica da aplicação, sendo responsável pelas regras de negócios e persistência com o banco de dados e as classes de entidades. Essa é a camada:
Em um projeto corporativo desenvolvido em C# sob arquitetura multicamadas, o analista identifica que determinadas classes da camada de domínio estão violando o princípio de inversão de dependência (DIP) ao instanciar diretamente classes da camada de infraestrutura. Considerando as boas práticas de desenvolvimento orientado a objetos e a aplicação de padrões de projeto, qual seria a solução mais aderente para restabelecer o baixo acoplamento e a alta coesão entre as camadas?
A
Introduzir interfaces na camada de domínio e injetá-las via construtor com uso de inversão de controle (IoC).
B
Mover toda a lógica de negócio para a camada de infraestrutura, eliminando dependências cruzadas.
C
Aplicar herança múltipla para reutilizar métodos comuns entre as camadas.
D
Centralizar todas as dependências em uma classe estática “DependencyManager”.
E
Implementar acoplamento direto com uso de variáveis globais controladas pelo compilador.
Em uma aplicação web baseada na arquitetura cliente-servidor de três camadas, a lógica de negócios, que inclui validações, processamento de dados e regras de aplicação, fica totalmente na camada intermediária, sem qualquer distribuição para as camadas de apresentação ou de dados.
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
A
consiste no back-end em nuvem de um aplicativo on-line.
B
é responsável por encapsular a lógica de negócios que é reutilizada por vários ViewModels.
C
tem esse nome porque é responsável por resolver consultas de domínio DNS para que o front-end acesse o back-end.
D
é composta por repositórios que podem conter de zero a várias fontes de dados.
E
consiste em um mecanismo de persistência de dados que dá apoio à camada de dados.