Rumah > Java > javaTutorial > Bagaimanakah Java Enum Melaksanakan Corak Reka Bentuk Singleton?

Bagaimanakah Java Enum Melaksanakan Corak Reka Bentuk Singleton?

Linda Hamilton
Lepaskan: 2024-12-01 20:01:20
asal
726 orang telah melayarinya

How Does a Java Enum Implement the Singleton Design Pattern?

Melaksanakan Singleton dengan Enum (dalam Java)

Dalam bidang pembangunan perisian, tidak jarang kita menghadapi senario yang kita perlukan untuk memastikan bahawa kelas hanya mempunyai satu contoh dalam ingatan. Singleton, corak reka bentuk, memenuhi keperluan ini.

Pertimbangkan pelaksanaan Java Singleton berikut menggunakan enum:

public enum MySingleton {
    INSTANCE;
}
Salin selepas log masuk

Pada permukaannya, seseorang mungkin tertanya-tanya bagaimana ini sebenarnya berfungsi. Lagipun, objek mesti diwujudkan untuk wujud. Berikut ialah pecahan:

Pembina Tersirat:
Sebenarnya, pengisytiharan enum secara tersirat memanggil pembina kosong. Walau bagaimanapun, ini tidak selalunya jelas daripada kod sahaja.

Pembina Eksplisit:
Untuk menjadikan perkara lebih jelas, kita boleh menambah pembina peribadi pada enum:

public enum MySingleton {
    INSTANCE;
    private MySingleton() {
        System.out.println("Here");
    }
}
Salin selepas log masuk

Pemalar dan Pembinaan Enum:
Medan Enum pada asasnya ialah masa penyusunan pemalar, tetapi ia juga merupakan contoh jenis enum mereka. Kali pertama jenis enum dirujuk, kejadian ini dibina.

Demonstrasi Kaedah Utama:
Jika kita mencipta kaedah utama dalam kelas berasingan:

public static void main(String[] args) {
    System.out.println(MySingleton.INSTANCE);
}
Salin selepas log masuk

Kita boleh perhatikan output berikut:

Here
INSTANCE
Salin selepas log masuk

Dalam contoh ini, contoh "INSTANCE" dibina pada kali pertama enum dirujuk dalam kaedah utama.

Atas ialah kandungan terperinci Bagaimanakah Java Enum Melaksanakan Corak Reka Bentuk Singleton?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan