Java 9, paketlere ek olarak modüllere de sahip olacak. Genellikle dillerin biri ya da diğeri vardır. Ve çoğu programcı iki terimi eş anlamlı olarak algılar . Modüller, ilkel olarak muamele ederek paketlerin üzerine inşa edilir. Kompozit desen, ilkel ve kompozitlerin eşit şekilde işlenmesini önerir. Aksi takdirde kötü şeyler olur. Örneğin, ilkel (değer) ve referans türleri için ortak süpertipi güçlendirmeye çalıştıkları Valhalla projesine bakın.
Modüller ve paketler anlamsal olarak ayrı kavramları mı temsil ediyor? Bunu Anlamı hem sahip olmak mantıklı herhangi bir dilde (endişeleri ayrılması). Yoksa Java, geriye dönük uyumluluğa bir övgü olarak mı sahip olmalıdır?
Mevcut konsepti güçlendirmek yerine neden yeni bir konsept sunalım?
JSR 376 : "Java platform modülü sistemi" proje Jigsaw içinde uygulandı .
SOTMS'a göre
Bir modül, kod ve verilerin adlandırılmış, kendi kendini tanımlayan bir koleksiyonudur. Kodu, Java sınıfları ve arabirimleri gibi türleri içeren bir paket kümesi olarak düzenlenmiştir; verileri kaynakları ve diğer statik bilgileri içerir.
JLS, paketin ne olduğunu tanımlamaktan dikkatle kaçınır . Gönderen Vikipedi :
Java paketi, Java sınıflarını Modula modüllerine benzer ad alanlarına yerleştirerek, Java'da modüler programlama sağlayan bir tekniktir.
Wikipedia'dan alıntı yapmanın kötü bir uygulama olduğunu biliyorum, ancak ortak anlayışı yansıtıyor. Gönderen girişi modüler programlama:
Vadeli paket bazen yerine kullanılan modül (Dart, Go veya Java gibi). Diğer uygulamalarda, bu farklı bir kavramdır; Python'da bir paket bir modül koleksiyonudur, yaklaşan Java 9'da ise yeni modül konseptinin (gelişmiş erişim kontrolü olan bir paket koleksiyonu) sunulması planlanmaktadır.
package
/ ne / anlamına ne değiştirmek hakkında değildir , ne de JRE de (yüzleşmek, oldukça korkunç) sınıf yolu sistem (ler) değişecek değil. Soru 2 Ben hissediyorum öncelikle görüş odaklı (öyle sorumlu , ama cevabım ve başkasının farklı olabilir ve ne bize mutlaka yanlış olur).
jigsaw
stil modülleri sadece paketler üzerinde teknik bir gelişme mi? 3) (1 değilse ve 2 ise), Java her iki kavramı da geriye dönük uyumluluk için saklar. Bu soruların bazıları cevaplanabilir, bazıları ise öncelikle fikir odaklı. Bence burada aranan açıklamaları basitleştiren bir düzenleme yapıldı.