Karena saya bekerja pada server yang sama sekali tidak memiliki status non-persisten untuk pengguna, setiap objek terkait Pengguna yang kami miliki diluncurkan pada setiap permintaan.
Akibatnya saya sering menemukan diri saya melakukan inisialisasi malas dari properti objek yang mungkin tidak digunakan.
protected EventDispatcher dispatcher = new EventDispatcher();
Menjadi...
protected EventDispatcher<EventMessage> dispatcher;
public EventDispatcher<EventMessage> getEventDispatcher() {
if (dispatcher == null) {
dispatcher = new EventDispatcher<EventMessage>();
}
return dispatcher;
}
Apakah ada alasan ini tidak dapat dibangun ke Jawa?
protected lazy EventDispatcher dispatcher = new EventDispatcher();
Seperti yang disebutkan di bawah dalam komentar, saya menyadari bahwa bahasa secara teori dapat berevolusi untuk memasukkan sebagian besar apa pun yang Anda inginkan. Saya mencari ukuran praktis dari kemungkinan. Apakah ini akan bertentangan dengan fitur lain? Apakah implementasinya cukup sederhana untuk bekerja dengan baik dengan JVM seperti yang ada? Dan bahkan, apakah itu ide yang bagus?
synchronized
kata kunci akan bekerja sama seperti jika itu pada metode. Saya membayangkan akan ada beberapa akomodasi metode konstruksi yang lebih rumit. Dalam kasus penggunaan khusus saya , karena sifat masalahnya, dengan setiap permintaan sebagai dunianya sendiri, sinkronisasi tidak ada gunanya.