क्योंकि बहुत सारी चीजें इंटरफ़ेस को लागू करती हैं या इसे उप इंटरफ़ेस के रूप में विस्तारित करती हैं।
कार्यान्वयन कक्षाएं हैं:
- java.util
- AbstractCollection
- AbstractList
- AbstractQueue
- AbstractSequentialList
- AbstractSet
- ...
- समवर्ती
- ArrayBlockingQueue
- ConcurrentLinkedDeque
- ...
- java.beancontext
- BeanContextServicesSupport
- BeanContextSupport
- ...
- java.sql
- BatchUpdateException
- DataTruncation
- ...
- javax.management
- javax.print.attribute.standard
- ...
यह बहुत बड़ी सूची है। और यह वहाँ से बाहर पैकेज के सभी प्रकार पर छूता है।
इसके अलावा, आप परिपत्र पैकेज निर्भरता को कम करना चाहते हैं । यदि पैकेज ए में एक वर्ग पैकेज बी में एक वर्ग पर निर्भर करता है जो पैकेज ए में वर्ग पर निर्भर करता है, तो आपको एक परिपत्र निर्भरता मिली है। वे हमेशा खराब नहीं होते हैं कि वे मौजूद हों - लेकिन वे अन्य परिपत्र निर्भरता की ओर ले जाते हैं और यह एक बुरी बात हो सकती है। यह अपने आप से बुरा नहीं है, लेकिन यह एक डिजाइन गंध है जो इंगित करता है कि दो वर्गों या पैकेजों के बीच युग्मन बहुत तंग है। यह तकनीकी ऋण संचय की शुरुआत है।
इसका समाधान यह है कि "हां, Iterable इंटरफ़ेस कुछ ऐसा है जो कि विभिन्न प्रकार के वर्गों और पैकेजों में पूरे जावा और javax संरचना पर निर्भर है। यह भाषा पुस्तकालयों - जावा के सबसे आधार में होना चाहिए। .lang। "
और वह वह जगह है जहां तुम इसे पाओगे।
संबंधित पढ़ना: