Implementasi Singleton menggunakan Enum dalam Java
Telah diperhatikan bahawa corak Singleton boleh dilaksanakan di Java menggunakan enum, seperti yang ditunjukkan oleh kod berikut:
public enum MySingleton { INSTANCE; }
Walau bagaimanapun, persoalan timbul mengenai proses instantiasi. Instalasi objek tradisional melibatkan penggunaan pembina, tetapi dalam enum, ini tidak dilakukan secara eksplisit.
Instantiating Enums
Enums mempunyai pembina kosong tersirat. Untuk menjadikannya jelas, anda boleh menambahkannya pada definisi enum:
public enum MySingleton { INSTANCE; private MySingleton() { System.out.println("Here"); } }
Sekarang, jika anda mencipta kelas dengan kaedah utama dan membuat instantiat Singleton enum:
public static void main(String[] args) { System.out.println(MySingleton.INSTANCE); }
Anda akan melihat output berikut:
Here INSTANCE
Medan enum pada asasnya ialah tika jenis enum. Ia dibina apabila jenis enum pertama kali dirujuk. Oleh itu, apabila anda mengakses medan INSTANCE dalam kaedah utama, ia mencetuskan instantiasi MySingleton dan pembinanya berjalan, mencetak "Di sini" ke konsol.
Atas ialah kandungan terperinci Bagaimanakah Instans Singleton Dicipta dalam Java Enums?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!