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 Iterable
oturuyor 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 Iterable
oturuyor java.lang
?
Not: Amaç, java programlamanın paketleme yönünü anlamaktır.
Yanıtlar:
Onun açıklandığı gibi javadoc , amacı Iterable
etmektir ö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 ...
Iterator
ideal olarak da olmalı java.lang
, çünkü Iterable
. Tabii ki, java.util
geriye 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.lang
paket 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: