У меня есть метод List<Foo> getFoos ()
, который получает данные с удаленного сервера и возвращает их.
Конечно, пользователь не должен изменять количество элементов списка, потому что он получит данные, не синхронизированные с данными на сервере (и если он хочет изменить количество элементов, у него есть специальные методы, такие как addFoo ()
).
Первым подходом было вернуть массив и изменить сигнатуру метода на Foo[] getFoos ()
. Но в java это более распространено и пользователю удобнее работать с коллекциями, поэтому я изменил подпись на List<Foo> getFoos ()
. Этот метод всегда возвращает
Collections.unmodifiableList (originalList)
Итак, когда пользователь попытается изменить список, он получит исключение RuntimeException.
Есть ли какие-либо рекомендации по разработке API в подобных случаях?