Melaksanakan Singleton dengan Enum: Menyingkap Mekanisme
Konsep melaksanakan corak reka bentuk Singleton menggunakan enum dalam Java menimbulkan persoalan mengenai instantiasi . Untuk menyelidiki kerja dalaman, mari kita periksa coretan kod yang disediakan:
public enum MySingleton { INSTANCE; }
Pada mulanya, adalah penting untuk ambil perhatian bahawa pengisytiharan enum di atas mencipta pembina kosong tersirat. Walau bagaimanapun, demi kejelasan, mari kita jelaskan:
public enum MySingleton { INSTANCE; private MySingleton() { System.out.println("Here"); } }
Sekarang, mari buat kelas ujian dengan kaedah main() untuk memerhati tingkah laku:
public static void main(String[] args) { System.out.println(MySingleton.INSTANCE); }
Setelah melaksanakan ini kod, anda akan menyaksikan output berikut:
Here INSTANCE
Persoalan kini timbul: bagaimanakah MySingleton dibuat seketika? Jawapannya terletak pada sifat medan enum. Ia bertindak sebagai pemalar masa kompilasi tetapi secara serentak adalah contoh jenis enum yang sepadan. Pembinaannya berlaku apabila jenis enum dirujuk buat kali pertama, yang berlaku dalam kaedah main() dalam kes kami.
Oleh itu, adalah penting untuk memahami bahawa medan enum pada asasnya adalah kejadian jenis enum mereka, menyediakan mekanisme yang mudah untuk menguatkuasakan corak Singleton tanpa memerlukan instantiasi eksplisit menggunakan baharu.
Atas ialah kandungan terperinci Bagaimanakah Java Enum Melaksanakan Corak Singleton?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!