Por que usar List<E> para uma variável e usar ArrayList<E> no construtor?

1 resposta
guj1

Galera, tudo bem?

Observando a classe abaixo eu fiquei com dúvida. Por que ao criar a variável ‘lista’ doi usado o tipo List e no contrutor foi usado o tipo ArrayList?

Grato pela atenção.

public class ClienteBO {
    
    private List<Cliente> lista;
    
    public ClienteBO() {
        lista = new ArrayList<Cliente>();
    }
    
}

1 Resposta

getAdicted

Bom dia.

Isso se chama Programar para Interface, veja, diversas classes implementam a Interface List<T>, portanto, qualquer tipo de classe implementadora passaria no teste É-UM, na chamada a esse construtor:

A classe ArrayList<T>, porderia ser muito bem um tipo, na váriavel de refência, Vector ou LinkedList, se atente para a Interface no topo da imagem, Collection.

Um projeto que preconize as boas práticas da OO será mais fácil de ser mantido, inclusive.

[]'s

Criado 5 de novembro de 2014
Ultima resposta 5 de nov. de 2014
Respostas 1
Participantes 2