1. Deskripsi
1) Pola Singleton: Pastikan hanya ada satu contoh kelas, instantiate sendiri dan berikan contoh ini ke sistem
2) Klasifikasi pola singleton: pola singleton (mem -instansi objek ke referensi sendiri ketika kelas dimuat), pola lazy singleton (objek akan dipasang hanya ketika metode yang memperoleh instance disebut, seperti getInstance) (Java Singleton Kinerja mode lebih baik dari malas Singleton Mode, Mode Singleton Lazy umumnya digunakan dalam C ++)
3) Elemen Pola Singleton:
a) Metode konstruksi pribadi
b) Poin referensi statis pribadi ke contohnya sendiri
c) Metode statis publik dengan contohnya sendiri sebagai nilai pengembalian
2. Contoh
Mode Hunger Singleton:
Salinan kode adalah sebagai berikut:
paket com.wish.modedesign;
kelas publik hungrysingleton {
instance hungrysingleton statis pribadi = hungrysingleton baru ();
private hungrysingleton () {
}
hungrysingleton static public getInstance () {
instance return;
}
}
Mode Singleton Lazy:
Salinan kode adalah sebagai berikut:
paket com.wish.modedesign;
Singleton kelas publik {
singleton pribadi () {
}
instance singleton statis pribadi;
Singleton getInstance yang disinkronkan public static () {// Perhatikan keselamatan utas saat multi-threading
if (instance == null) {
instance = singleton baru ();
}
instance return;
}
}
Test Class Driver.java
Salinan kode adalah sebagai berikut:
paket com.wish.modedesign;
Driver kelas publik {
public static void main (string [] args) {
Singleton s1 = singleton.getInstance ();
Singleton s2 = singleton.getInstance ();
System.out.println (S1 == S2);
}
}
3. Keuntungan dan skenario yang berlaku
1) Keuntungan dari mode singleton:
Hanya ada satu objek dalam memori, menghemat ruang memori.
Menghindari sering penciptaan dan penghancuran objek dapat meningkatkan kinerja.
Hindari beberapa pekerjaan sumber daya bersama.
Dapat diakses secara global.
2) Skenario yang berlaku:
Objek yang perlu sering dipakai dan kemudian dihancurkan.
Objek yang membutuhkan terlalu banyak waktu atau terlalu banyak sumber daya saat membuat objek, tetapi sering digunakan.
Objek seperti alat yang stateful.
Objek yang sering mengakses basis data atau file.
4. Hal -hal yang perlu diperhatikan saat menggunakan
1) Saat menggunakan, Anda tidak dapat membuat singleton dengan mode refleksi, jika tidak objek baru akan dipakai.
2) Perhatikan masalah keselamatan utas saat menggunakan Mode Singleton Lazy
3) Pola Singleton yang lapar dan metode konstruksi pola singleton malas adalah pribadi dan karenanya tidak dapat diwariskan.