O que é essa declaração?

Olá amigos, tudo bem? Espero que sim, mesmo diante das dificuldades em que passamos. Entretanto, gostaria de saber quais os conceitos envolvidos no seguinte código:

            GenericDAO oTipoCampanhaDAO = new TipoCampanhaDAO();

GenericDAO = Interface que possue contratos a serem implementados, no objeto oTipoCampanhaDAO que será instanciado a partir da classe TipoCampanhaDAO.

Bom, já falando boa parte do código, eu tenho dúvida quanto a que conceito o GenericDAO aplica no objeto. O objeto terá multiplos tipos?(sendo TipoCampanhaDAO e GenericDAO).

Isso tem ligação com polimorfismo na orientação à objetos.

Neste caso a interface recebe a instância de uma implementação específica, mas poderia por exemplo existirem N outras implementações, com isso, no momento em que você faz:

Interface minhaInterface = new MinhaImplementacao();

Você garante que seu código sofrerá o mínimo de impacto em caso de uma mudança na implementação, pois isso deixa suas classes com um baixo nível de acoplamento, dado que ele depende somente da interface e não da implementação propriamente dita.

1 curtida

Muito obrigado, o link seguinte explica exatamente oque você explicou em poucas(mas de forma eficiente) palavras. Obrigado mesmo.

Java - Injeção de Dependências (Simples, sem uso de frameworks) - YouTube