Bởi vì rất nhiều thứ thực hiện giao diện Iterable hoặc mở rộng nó như một giao diện phụ.
Các lớp thực hiện là:
- java.util
- Tóm tắt
- Tóm tắt
- Tóm tắt
- Tóm tắtSequentialList
- Tóm tắt
- ...
- đồng thời
- ArrayBlockingQueue
- Đồng thờiLinkedDeque
- ...
- java.beancontext
- BeanContextServiceSupport
- BeanContextSupport
- ...
- java.sql
- BatchUpdateException
- Truncation dữ liệu
- ...
- javax.man quản lý
- javax.print.attribution.st Chuẩn
- ...
Đây là một danh sách rất lớn. Và nó chạm vào tất cả các loại gói ngoài kia.
Hơn nữa, bạn muốn giảm thiểu phụ thuộc gói tròn . Nếu một lớp trong gói A phụ thuộc vào một lớp trong gói B phụ thuộc vào một lớp trong gói A, bạn đã có một phụ thuộc vòng tròn. Chúng không phải lúc nào cũng xấu khi chúng tồn tại - nhưng chúng dẫn đến sự phụ thuộc vòng tròn khác và đó có thể là một điều xấu. Bản thân nó không tệ, nhưng nó là một mùi thiết kế chỉ ra rằng khớp nối giữa hai lớp hoặc gói quá chặt chẽ. Đó là sự khởi đầu của tích lũy nợ kỹ thuật.
Giải pháp cho vấn đề này là nói "vâng, giao diện Iterable là thứ được phụ thuộc vào rất nhiều lớp và gói trong toàn bộ cấu trúc java và javax. Nó phải nằm trong hầu hết các thư viện ngôn ngữ - java .lang. "
Và đó là nơi bạn sẽ tìm thấy nó.
Đọc liên quan: