Должен ли я объявить интерфейс как возвращаемое значение или реализацию как возвращаемое значение? - PullRequest
0 голосов
/ 31 марта 2011

Что из нижеперечисленного верно при написании метода, который возвращает arrayList of cats.

Ответы [ 3 ]

4 голосов
/ 31 марта 2011

List<Cat> - лучший выбор. Во-первых, он объявляет интерфейс как возвращаемое значение, так что вы можете позже изменить реализацию, например, переключиться с ArrayList на что-то другое. Во-вторых, он использует дженерики, что всегда лучше, поскольку делает значение безопасным.

2 голосов
/ 31 марта 2011

Третий.

Первый вариант плохой, так как он заставит пользователя вашего API разыгрывать записи Списка, и он может выбрать их раздачу (Собакам) для всех вас сейчас.

Второе - плохо, потому что, если Java предлагает SuperFastList в 1.7, и вы хотите использовать его вместо ArrayList?

1 голос
/ 31 марта 2011
public List<Cat> getCatsByCatHerderID(int id);

Третий метод, поскольку вы имеете дело только с методами, определенными в списке, и никогда не беспокоитесь о том, какой тип списка возвращается методом. Кроме того, если вы собираетесь использовать веб-службы, третий способ подходит, поскольку List лучше понимается в веб-службах, чем ArrayList (представьте, что в .NET есть ArrayList?)

Если вы действительно хотите вернуть ArrayList, то это:

public ArrayList<Cat> getCatsByCatHerderID(int id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...