Зачем использовать последний со списком вместо ArrayList?
Это хорошая практика: Программы для взаимодействия, а не реализации
Заменяя ArrayList
с List
, вы можете изменить List
реализацию в будущем, как показано ниже в зависимости от вашего бизнеса-прецедента.
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).*/
ИЛИ
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.*/
ИЛИ
List<Object> list = new Stack<Object>();
/* The Stack class represents a last-in-first-out (LIFO) stack of objects.*/
ИЛИ
некоторые другие List
конкретной реализации.
интерфейс определяет контракт, а конкретная реализация List
может быть изменена. Таким образом, интерфейс и реализация слабо связаны.
Связанные SE вопрос:
What does it mean to "program to an interface"?
Смотрите также HTTP: // StackOverflow.com/questions/383947/what-does-it-mean-to-program-to-an-interface – Raedwald 2014-03-25 23:48:04