¿Por qué se debe usar el último con List en lugar de ArrayList?
Es una buena práctica: Programa de interfaz en lugar de aplicación
Al reemplazar ArrayList
con List
, puede cambiar List
aplicación en el futuro de la siguiente manera dependiendo de su caso el uso del negocio.
List<Object> list = new LinkedList<Object>();
/* Doubly-linked list implementation of the List and Deque interfaces.
Implements all optional list operations, and permits all elements (including null).*/
O
List<Object> list = new CopyOnWriteArrayList<Object>();
/* A thread-safe variant of ArrayList in which all mutative operations
(add, set, and so on) are implemented by making a fresh copy of the underlying array.*/
O
List<Object> list = new Stack<Object>();
/* The Stack class represents a last-in-first-out (LIFO) stack of objects.*/
O
alguna otra List
aplicación específica.
List
interfaz define el contrato y la implementación específica de List
se puede cambiar. De esta manera, la interfaz y la implementación de están ligeramente acopladas.
pregunta SE relacionadas:
What does it mean to "program to an interface"?
Ver también http: // stackoverflow.com/questions/383947/what-does-it-mean-to-program-to-an-interface – Raedwald