我有List<Foo> getFoos ()
从远程服务器获取数据并返回它的方法。
当然,用户不应该更改列表的项目数,因为他会得到与服务器上的数据不同步的数据(如果他想要更改项目数,他有特殊的方法,例如addFoo ()
)。
第一种方法是返回数组并将方法的签名更改为Foo[] getFoos ()
. 但它在 java 中更常见,用户操作集合更方便,所以我将签名更改为List<Foo> getFoos ()
. 此方法总是返回
Collections.unmodifiableList (originalList)
因此,当用户尝试更改列表时,他会得到 RuntimeException。
类似情况下有没有关于api设计的推荐?