Saya mengerti ide lingkup paket, dan kadang-kadang bahkan berpikir saya menginginkannya. Namun, setiap kali saya mengatur dengan niat serius untuk mencoba menggunakannya, saya menemukan itu tidak sesuai dengan kebutuhan yang saya pikir akan melayani.
Masalah utama saya sepertinya selalu bahwa hal-hal yang saya ingin membatasi ruang lingkup tidak pernah dalam paket yang sama. Mereka secara konseptual semuanya dapat dihubungkan, tetapi pembagian logis dari data dalam aplikasi menjadikannya sebagai paket anak terpisah dari paket yang lebih besar.
Misalnya saya mungkin memiliki model Misi dan saya hanya ingin alat Misi lainnya, seperti Layanan misi saya, menggunakan beberapa metode. Namun, saya berakhir dengan Missions.models dan Missions.services sebagai paket saya, sehingga MissionModel dan MissionService bukan cakupan paket yang sama. Sepertinya tidak pernah ada situasi di mana paket-paket dengan tepat memuat hal-hal yang saya ingin punya izin tinggi tanpa menyertakan banyak hal yang saya tidak ingin punya izin-izin itu; dan jarang saya merasakan manfaat dari pelingkupan paket metode membenarkan memodifikasi arsitektur proyek saya untuk menempatkan semuanya dalam paket yang sama. Seringkali baik Aspek atau semacam inversi kontrol ternyata menjadi pendekatan yang lebih baik untuk masalah apa pun yang secara singkat saya pertimbangkan pelingkupan paket.
Saya ingin tahu, ini umumnya dianggap benar di semua pengembang Java, atau hanya kebetulan dari pekerjaan yang saya lakukan. Apakah ruang lingkup paket banyak digunakan di dunia nyata? Apakah ada banyak kasus di mana itu dianggap sebagai bentuk yang baik untuk digunakan, atau apakah itu dilihat sebagai perilaku warisan yang jarang dieksploitasi dalam perkembangan modern?
Saya tidak bertanya apa-apa tentang mengapa ruang lingkup paket pribadi adalah default, saya bertanya kapan itu harus digunakan terlepas dari standarnya. Sebagian besar diskusi mengapa itu default tidak benar-benar masuk ketika lingkup paket benar-benar berguna, bukannya berdebat hanya karena mengapa dua lingkup yang biasa digunakan seharusnya tidak default sehingga paket menang dengan proses eliminasi. Selain itu, pertanyaan saya adalah tentang saat keadaan pembangunan. Secara khusus, telah kami kembangkan ke titik di mana alat dan paradigma lain membuat ruang lingkup paket kurang berguna maka kembali ketika keputusan untuk menjadikannya default masuk akal.