Dalam bahasa pengaturcaraan Java, menggunakan enum sebagai singleton menawarkan cara yang mudah untuk memastikan bahawa hanya satu contoh kelas wujud. Walau bagaimanapun, pendekatan berbeza boleh digunakan untuk melaksanakan corak tunggal ini dengan enum, yang membawa kepada sedikit variasi dalam kefungsian dan penggunaan.
<code class="java">public enum Elvis { INSTANCE; private int age; public int getAge() { return age; } }</code>
Dalam pendekatan ini, medan INSTANCE dicipta, dengan berkesan mentakrifkan contoh tunggal Elvis enum. Pembina persendirian mengehadkan instantiasi di luar definisi enum. Untuk mengakses contoh, seseorang akan menggunakan Elvis.INSTANCE.getAge().
<code class="java">public enum Elvis { INSTANCE; private int age; public static int getAge() { return INSTANCE.age; } }</code>
Di sini, medan INSTANCE adalah peribadi seperti sebelum ini. Walau bagaimanapun, daripada mendedahkan getter pada contoh enum, kaedah statik awam getAge() disediakan. Memanggil Elvis.getAge() mendapatkan semula sifat umur contoh enum.
Kaedah 1:
Kaedah 2:
Pendekatan terbaik untuk menggunakan enum sebagai singleton bergantung pada kes penggunaan tertentu.
Secara amnya, pertimbangkan untuk menggunakan kaedah statik apabila kefungsian itu berdiri sendiri dan tidak memerlukan contoh eksplisit kelas enum. Untuk situasi di mana sifat sesuatu kejadian adalah penting dan akses terus diperlukan, pendekatan pertama boleh menjadi lebih sesuai.
Atas ialah kandungan terperinci Enums sebagai Singletons dalam Java: Pelaksanaan Mana yang Terbaik untuk Anda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!