我正在为以字节流形式检索数据的服务客户端设计 API。 使用有什么好处
InputStream getData(String param1, String param2);
结束
byte[] getData(String param1, String param2);
返回输入流的方法让我很困扰,因为
设计这个的最好方法是什么?我什至考虑过使用
void writeData(String param, String param, OutputStream os);
但这使得方法名称不直观。
byte[] 有两个可能的缺点:
使用 Stream 可以解决这些问题。这取决于您返回的数据以及您期望用户用它做什么。
我会返回像 Guava 的
InputSupplier<InputStream>
这样的东西,它可以让你请求多个不同的输入流。
此外,Guava 还提供了许多方法,这些方法采用
InputSupplier<InputStream>
,打开输入流,执行一些全流操作,然后关闭它,而不会让您记住关闭输入流或其他任何操作。
即使您不想直接使用 Guava,这也是一项很好的技术,可以让客户端程序决定如何处理它。