Logo Passei Direto
Buscar

Injeção de dependência

Ferramentas de estudo

Questões resolvidas

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Prévia do material em texto

Injeção de dependência
O que e injecao de dependencia (DI)?
a) Um padrao de projeto que permite a criacao de objetos de forma automatica.
b) Um padrao de design que permite que objetos sejam passados como dependencias para uma
classe, em vez de serem criados dentro dela.
c) Um mecanismo que gerencia todas as dependencias de um sistema de forma manual.
d) Uma tecnica para criar instancias de classes sem a necessidade de programacao orientada a
objetos.
Resposta correta: b) Um padrao de design que permite que objetos sejam passados como
dependencias para uma classe, em vez de serem criados dentro dela.
Explicacao: A injecao de dependencia e um conceito de design que visa reduzir o acoplamento
entre as classes, permitindo que as dependencias sejam passadas para a classe atraves de
construtores, metodos ou interfaces. Isso facilita testes, manutencao e reutilizacao de codigo.
Qual a principal vantagem da injecao de dependencia?
a) Aumento do tempo de execucao do sistema.
b) Maior acoplamento entre os componentes do sistema.
c) Reducao do acoplamento e aumento da testabilidade.
d) Reducao na legibilidade do codigo.
Resposta correta: c) Reducao do acoplamento e aumento da testabilidade.
Explicacao: A principal vantagem da injecao de dependencia e reduzir o acoplamento entre os
componentes de um sistema, facilitando a manutencao e tornando o codigo mais modular. Alem
disso, facilita a criacao de testes unitarios, ja que as dependencias podem ser facilmente mockadas
ou substituidas.
Quais sao os tres tipos principais de injecao de dependencia?
a) Injecao via interface, injecao via heranca e injecao via metodo.
b) Injecao via construtor, injecao via setter e injecao via interface.
c) Injecao via heranca, injecao via metodo e injecao via setter.
d) Injecao via construtor, injecao via metodo e injecao via contexto.
Resposta correta: b) Injecao via construtor, injecao via setter e injecao via interface.
Explicacao: A injecao de dependencia pode ser feita de tres maneiras principais:
Via construtor: a dependencia e passada no momento da criacao do objeto.
Via setter: a dependencia e configurada depois que o objeto e instanciado, usando um metodo
setter.
Via interface: a dependencia e passada por meio de uma interface que a classe implementa.
Em qual cenario a injecao de dependencia via construtor e mais adequada?
a) Quando a dependencia e opcional e pode ser alterada durante a execucao.
b) Quando as dependencias sao fixas e nao podem ser alteradas apos a criacao do objeto.
c) Quando o objeto depende de varias classes que nao tem um comportamento comum.
d) Quando se deseja otimizar o tempo de execucao.
Resposta correta: b) Quando as dependencias sao fixas e nao podem ser alteradas apos a criacao
do objeto.
Explicacao: A injecao via construtor e indicada quando as dependencias sao essenciais para o
funcionamento da classe e nao devem ser alteradas depois que o objeto e instanciado. Isso
garante que o objeto sempre tenha todas as dependencias necessarias de forma consistente.
Qual das alternativas a seguir e uma desvantagem da injecao de dependencia?
a) Aumento da reutilizacao do codigo.
b) Maior complexidade na configuracao do sistema.
c) Facilita o processo de testes unitarios.
d) Reducao da quantidade de codigo necessario para criar objetos.
Resposta correta: b) Maior complexidade na configuracao do sistema.
Explicacao: Embora a injecao de dependencia traga beneficios, como maior testabilidade e
flexibilidade, ela pode aumentar a complexidade do sistema, principalmente se houver um grande
numero de dependencias a serem injetadas. Em sistemas mais simples, isso pode se tornar um
exagero.
Qual framework de Java e amplamente utilizado para implementar injecao de dependencia?
a) JUnit
b) Hibernate
c) Spring
d) Maven
Resposta correta: c) Spring
Explicacao: O Spring e um dos frameworks mais populares para implementacao de injecao de
dependencia em Java. Ele oferece um container que gerencia a criacao e injecao de objetos, alem
de outras funcionalidades como transacoes e seguranca.
O que e um container de injecao de dependencia?
a) Um sistema que cria e armazena todas as instancias de classes do projeto.
b) Um componente que gerencia o ciclo de vida das dependencias e faz a injecao delas nas
classes.
c) Um banco de dados onde as dependencias sao armazenadas.
d) Uma biblioteca que permite a implementacao de funcoes matematicas no sistema.
Resposta correta: b) Um componente que gerencia o ciclo de vida das dependencias e faz a
injecao delas nas classes.
Explicacao: O container de DI (Dependency Injection) e responsavel por gerenciar o ciclo de vida
dos objetos e suas dependencias, realizando a injecao quando necessario. O Spring, por exemplo,
possui um container chamado "Spring Context" que cuida disso.
Qual das alternativas a seguir descreve melhor o conceito de "injecao de dependencia inversa"?
a) As dependencias sao passadas para o objeto atraves de um setter.
b) O objeto e responsavel por criar suas dependencias, aumentando o acoplamento.
c) O controle de criacao de dependencias e delegado a um componente externo, como um
container.
d) A classe e responsavel por determinar o comportamento das dependencias.
Resposta correta: c) O controle de criacao de dependencias e delegado a um componente externo,
como um container.
Explicacao: A injecao de dependencia inversa (ou Inversion of Control - IoC) significa que a
responsabilidade pela criacao e gerenciamento das dependencias de uma classe e delegada a um
componente externo, como um container de DI, em vez de ser feito internamente pela classe.
Qual das alternativas a seguir e um exemplo de injecao de dependencia via setter?
a) new Carro(engine)
b) carro.setEngine(engine)
c) Carro car = container.get(Carro.class)
d) Carro(carroEngine)
Resposta correta: b) carro.setEngine(engine)
Explicacao: A injecao via setter ocorre quando a dependencia e atribuida a um objeto atraves de
um metodo setter. Nesse caso, a dependencia engine e passada ao objeto carro por meio de um
setter.
Quais problemas a injecao de dependencia ajuda a resolver?
a) Reduzir o tempo de resposta da aplicacao.
b) Aumentar a complexidade do codigo.
c) Melhorar a modularizacao e reduzir o acoplamento entre as classes.
d) Aumentar a quantidade de codigo redundante.
Resposta correta: c) Melhorar a modularizacao e reduzir o acoplamento entre as classes.
Explicacao: A injecao de dependencia permite que as classes sejam mais modulares e
independentes, o que facilita a manutencao, a extensao e a testabilidade do codigo. A principal
vantagem e a reducao do acoplamento entre os componentes, tornando o sistema mais flexivel.
O que significa o conceito de "acoplamento fraco" em um sistema que utiliza injecao de
dependencia?
a) As classes estao fortemente dependentes umas das outras, dificultando a manutencao.
b) As classes estao quase sem nenhuma dependencia entre si, facilitando a manutencao e o teste.
c) As dependencias sao criadas manualmente, mas as classes podem ser alteradas facilmente.
d) As classes dependem de outros componentes, mas nao podem ser modificadas.
Resposta correta: b) As classes estao quase sem nenhuma dependencia entre si, facilitando a
manutencao e o teste.
Explicacao: O "acoplamento fraco" ocorre quando as classes dependem minimamente umas das
outras, o que torna o sistema mais flexivel e facil de modificar sem impactar outras partes do
codigo. Isso e um dos principais objetivos da injecao de dependencia.
O que e o "Principio da Inversao de Controle" (IoC)?
a) O controle sobre o comportamento das classes e dado ao programador.
b) O controle sobre o ciclo de vida dos objetos e suas dependencias e transferido para um
container ou framework.
c) O controle das classes e dado a classe principal do sistema.
d) O controle das dependencias e realizado apenas atraves de chamadas diretas.
Resposta correta: b) O controle sobre o ciclo de vida dos objetos e suas dependencias e transferidopara um container ou framework.
Explicacao: O Principio da Inversao de Controle (IoC) e a base para a