Aşağıdaki şemaya göre, arayüz hariç Iterable, kalan tüm yapılar (arayüz / sınıf / soyut sınıf) aynı pakette otururjava.util

Neden pakette Iterableoturuyor java.lang?
Not: Amaç, java programlamanın paketleme yönünü anlamaktır.
Aşağıdaki şemaya göre, arayüz hariç Iterable, kalan tüm yapılar (arayüz / sınıf / soyut sınıf) aynı pakette otururjava.util

Neden pakette Iterableoturuyor java.lang?
Not: Amaç, java programlamanın paketleme yönünü anlamaktır.
Yanıtlar:
Onun açıklandığı gibi javadoc , amacı Iterableetmektir özellikle dil sözdizimi destekleyen :
Bu arabirimin uygulanması, bir nesnenin "foreach" ifadesinin hedefi olmasını sağlar
Bu nedenle, lang paketine aittir ,
Java programlama dilinin tasarımı için temel olan sınıflar sağlar.
Diyagramı Diğer sınıflar ait JCF içindedir, ve bundan dolayı util paketi olan
Koleksiyon çerçevesini içerir ...
Iteratorideal olarak da olmalı java.lang, çünkü Iterable. Tabii ki, java.utilgeriye dönük uyumluluk nedenlerinden dolayı olmalı ("foreach" yapısı ona uygun dilde bir rol vermeden çok önce JDK'da kullanılmaya başlanmıştı).
Iterableüzerinde Iterator , java.langpaket genel sınıfları bağımlı değildir java.util.)
Çünkü birçok şey yinelenebilir arabirimi uygular veya bir alt arabirim olarak genişletir.
Uygulama sınıfları:
Bu çok büyük bir liste. Ve her türlü pakete dokunuyor.
Ayrıca, dairesel paket bağımlılıklarını en aza indirmek istersiniz . A paketindeki bir sınıf, B paketindeki A paketindeki bir sınıfa bağlı olan bir sınıfa bağlıysa, dairesel bir bağımlılığınız vardır. Her zaman var oldukları için kötü değildirler - ancak diğer dairesel bağımlılıklara yol açarlar ve bu kötü bir şey olabilir. Tek başına kötü değil, ancak iki sınıf veya paket arasındaki bağlantının çok sıkı olduğunu gösteren bir tasarım kokusudur. Bu biriken teknik borcun başlangıcıdır.
Bunun çözümü, "evet, Yinelenebilir arayüz, java ve javax yapısının tamamı boyunca çok çeşitli sınıflara ve paketlere bağlı bir şeydir. Dil kütüphanelerinin en temelinde olmalıdır - java .lang."
Ve onu bulacağınız yer.
İlgili okumalar: