Trong Java 8, tôi đang thay thế Collection
giá trị trả lại bằng Stream
.Trả lại luồng thay vì danh sách
Vì vậy, nơi tôi sẽ một lần đã có:
public List<Element> getElementList() {
return elements;
}
bây giờ tôi đang sử dụng:
public Stream<Element> streamElements() {
return elements.stream();
}
lập luận của tôi cho đây là:
- Nó thực thi tính bất biến của các cơ bản list
- Nó giấu thực tế là có là danh sách cơ bản. Sau này nó có thể được thay đổi thành một tập hợp hoặc một số cấu trúc khác mà không thay đổi chữ ký phương thức.
- Nó độc đáo đóng gói mà người dùng của phương pháp dự kiến sẽ làm điều gì đó với các mục không phải là một cái gì đó với một danh sách.
- Nó có thể song song một cách trivially sau này nếu được yêu cầu.
Trong thực tế hiện nay, trong mã của tôi, trả lại một List
hoặc một số khác bộ sưu tập là một cách rõ ràng một sự công nhận mà người dùng có thể xem xét các bộ sưu tập có thể thay đổi và dự kiến để có thể thay đổi nó.
Rõ ràng một số điều này có thể đạt được với các bộ sưu tập không thay đổi.
Câu hỏi của tôi là: ai có thể thấy bất kỳ bất lợi nào với thiết kế này không? Có lợi thế nào về các bộ sưu tập không thể thay đổi khi trả lại một số Stream
không?
trả lời ở đây: http://stackoverflow.com/questions/24676877/should-i-return-a-collection-or-a-stream/24679745#24679745 –
@BrianGoetz Tôi có thể có chữ ký của bạn xin vui lòng: P –
Xem thêm http://stackoverflow.com/q/27179175/2711488 – Holger