2
respostas

Boas práticas

Olhando a estrutura que o Nico está usando para mostrar a injeção de dependências fiquei me perguntando uma coisa...

Eu colocaria o EntityManager direto no DAO! em outro momento já tive está dúvida, por exemplo quando fiz a aula sobre Mocks com Mauricio Aniche ele criava construtores para passar as dependências e até facilitar os testes, ai gostaria de saber "eu to remando contra a maré"? é uma boa pratica sempre passar a dependência de uma class no construtor mesmo implicando em instanciar em vários lugares a mesma classe? se sim porque? existe alguma flexibilidade ou coisa do tipo que esse padrão ajudaria?

Vlww!!!

2 respostas

Faz tempo que fiz esse curso então não me lembro bem a estratégia que o Nico usou, mas se me lembro bem ele criou um Dao Generico e os outros Daos usam esse Dao Genérico, então vai dar na mesma. Bom eu costumo injetar meu entity manager no Dao mesmo(ultimamente tenho chamado eles de repositórios mas isso é outra treta), como uso EJB

@Stateless
public class Produtos(){
@PersistenceContext(unitName="almoxPU")
private EntityManager em;
}

se não utilizar EJB não muda muita coisa, só vai ter que injetar esse entitymanager via CDI, normalmente via um EntityManagerProducer

Então Ricardo você também faz como eu, constuma injetar direto a dependência onde precisa, e não fica passando por construtor, como vejo em alguma aulas aqui, ai quando vc precisa fazer testes, você usa o InjectMocks para essas dependências?