Rumah >Java >javaTutorial >Enum sebagai Singleton dalam Java: Pembina Persendirian vs Kaedah Statik - Pendekatan Mana Yang Sesuai untuk Anda?
Di Jawa, enum boleh dimanfaatkan sebagai singleton, menyediakan mekanisme yang ringkas dan cekap untuk mencipta dan mengakses kejadian global dan unik. Walau bagaimanapun, terdapat dua pendekatan utama untuk melaksanakan corak reka bentuk ini menggunakan enum: menggunakan pembina peribadi dengan medan INSTANCE berbanding bergantung semata-mata pada kaedah statik.
Pendekatan Pembina Persendirian
<code class="java">public enum Elvis { INSTANCE; private int age; public int getAge() { return age; } }</code>
Dengan pendekatan ini, enum diisytiharkan dengan pembina persendirian, menghalang instantiasi langsung. Selepas itu, medan INSTANCE tunggal dicipta, yang berfungsi sebagai contoh tunggal enum. Kejadian ini boleh diakses melalui medan statik INSTANCE.
Pendekatan Kaedah Statik
<code class="java">public enum Elvis { INSTANCE; private int age; public static int getAge() { return INSTANCE.age; } }</code>
Sebagai alternatif, pendekatan kaedah statik menggunakan kaedah statik untuk mendapatkan semula sifat umur daripada medan INSTANCE. Dalam kes ini, enum diisytiharkan tanpa pembina peribadi dan kaedah getAge() statik digunakan untuk mengakses sifat umur medan INSTANCE (yang mesti diisytiharkan statik juga).
Kebaikan dan Keburukan Setiap Pendekatan
Pendekatan Pembina Peribadi:
Pendekatan Kaedah Statik:
Pendekatan Terbaik
Pilihan antara dua pendekatan bergantung pada keperluan khusus aplikasi. Jika kawalan ketat ke atas penciptaan contoh dan pemisahan contoh dan kaedah adalah yang paling penting, pendekatan pembina persendirian adalah lebih baik. Walau bagaimanapun, jika keupayaan untuk lulus atau mengikat contoh adalah penting, pendekatan kaedah statik adalah pilihan yang lebih berdaya maju. Akhirnya, keputusan harus dibuat berdasarkan pertukaran dan keperluan projek individu.
Atas ialah kandungan terperinci Enum sebagai Singleton dalam Java: Pembina Persendirian vs Kaedah Statik - Pendekatan Mana Yang Sesuai untuk Anda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!