Tôi đã nghe lập luận rằng bạn nên sử dụng giao diện chung nhất có sẵn để bạn không bị ràng buộc với việc triển khai cụ thể giao diện đó. Liệu logic này có áp dụng cho các giao diện như java.util.Collection không?
Tôi rất muốn nhìn thấy một cái gì đó như sau:
List<Foo> getFoos()
hoặc là
Set<Foo> getFoos()
thay vì
Collection<Foo> getFoos()
Trong trường hợp cuối cùng, tôi không biết tôi đang xử lý loại dữ liệu nào, trong khi trong hai trường hợp đầu tiên tôi có thể đưa ra một số giả định về thứ tự và tính duy nhất. Liệu java.util.Collection có một bên ngoài hữu ích của việc cha mẹ hợp lý cho cả hai bộ và danh sách?
Nếu bạn gặp phải mã sử dụng Bộ sưu tập khi thực hiện đánh giá mã, làm thế nào bạn xác định liệu việc sử dụng nó có hợp lý hay không và bạn có đề xuất gì để thay thế nó bằng giao diện cụ thể hơn?
Collection<List<?>>
không? Nói về kinh dị mã hóa!