เนื่องจากมีหลายสิ่งที่ใช้อินเตอร์เฟสIterableหรือขยายเป็นอินเตอร์เฟสย่อย
ชั้นเรียนดำเนินการคือ:
- java.util
- AbstractCollection
- AbstractList
- AbstractQueue
- AbstractSequentialList
- AbstractSet
- ...
- พร้อมกัน
- ArrayBlockingQueue
- ConcurrentLinkedDeque
- ...
- java.beancontext
- BeanContextServicesSupport
- BeanContextSupport
- ...
- java.sql
- BatchUpdateException
- DataTruncation
- ...
- javax.management
- javax.print.attribute.standard
- ...
นี่คือรายการใหญ่ และสัมผัสกับแพ็คเกจทุกประเภทที่นั่น
นอกจากนี้คุณต้องการที่จะลดการพึ่งพาแพคเกจวงกลม หากคลาสในแพ็คเกจ A ขึ้นอยู่กับคลาสในแพ็คเกจ B ซึ่งขึ้นอยู่กับคลาสในแพ็คเกจ A แสดงว่าคุณมีการพึ่งพาแบบวงกลม พวกเขาไม่ได้เลวร้ายเสมอไปที่มีอยู่ - แต่พวกเขานำไปสู่การพึ่งพาแบบวงกลมอื่น ๆ และนั่นอาจเป็นสิ่งที่ไม่ดี มันไม่ได้เลวร้ายนัก แต่มันก็เป็นกลิ่นการออกแบบที่บ่งบอกว่าการมีเพศสัมพันธ์ระหว่างสองคลาสหรือแพ็คเกจนั้นแน่นเกินไป มันเป็นจุดเริ่มต้นของหนี้ทางเทคนิคสะสม
วิธีแก้ปัญหานี้คือการพูดว่า "ใช่, Iterable interface เป็นสิ่งที่ขึ้นอยู่กับคลาสและแพ็คเกจที่หลากหลายตลอดทั้งโครงสร้างของ java และ javax มันควรจะอยู่ในฐานของไลบรารีภาษา - java .lang."
และนั่นคือที่ที่คุณจะพบมัน
การอ่านที่เกี่ยวข้อง: