Corak singleton ialah corak reka bentuk ciptaan termasuk:
Hanya satu contoh: Corak singleton memastikan hanya terdapat satu contoh. dalam sistem Objek contoh wujud, dan semua akses kepada objek adalah rujukan kepada objek yang sama
Akses global: Mod tunggal boleh mengakses objek contoh secara global, mengelakkan keperluan untuk berbilang objek untuk berinteraksi antara satu sama lain. Konflik dan persaingan
Permulaan tertunda: Mod Singleton biasanya menggunakan teknologi pemulaan tertunda, dan hanya mencipta objek tunggal apabila diperlukan, mengelakkan pembaziran sumber dan kehilangan prestasi yang tidak perlu , memastikan Ketepatan dan kebolehpercayaan objek tunggal
Keselamatan benang: Mod Singleton perlu mempertimbangkan isu keselamatan benang untuk memastikan objek contoh yang diperoleh di bawah berbilang benang adalah sama, mengelakkan berbilang benang Persaingan dan konflik antara
Menyediakan contoh unik di peringkat global untuk memudahkan pengurusan dan penyelenggaraan objek
Mengurangkan penciptaan dan pemusnahan objek serta meningkatkan prestasi sistem.
Mengelakkan persaingan dan konflik antara berbilang kejadian, memastikan ketekalan dan kestabilan keadaan objek Ciri
Boleh mengawal bilangan kejadian kelas tertentu dalam sistem untuk mengelakkan pembaziran dan penyalahgunaan sumber sistem
Memudahkan keselamatan benang dan bersiri , refleksi dan fungsi lain bertambah baik kebolehpercayaan dan keselamatan objek
Kelemahan
Mod tunggal akan meningkatkan kerumitan kod, meningkatkan Ia mengurangkan kesukaran penyelenggaraan sistem dan ujian kod
Mod tunggal boleh menyebabkan kitaran hayat objek tunggal menjadi terlalu lama, menyebabkan objek tidak dilepaskan dalam masa, sekali gus menjejaskan prestasi sistem
Corak tunggal mungkin disalahgunakan, mengakibatkan terlalu banyak objek tunggal dalam sistem, yang meningkatkan penggunaan sumber sistem dan kesukaran pengurusan
Mod tunggal mungkin rosak, terutamanya dalam persekitaran berbilang benang, kaedah pelaksanaan khas diperlukan untuk memastikan ketepatan dan kebolehpercayaan objek tunggal
Ini ialah kaedah pelaksanaan tunggal yang paling mudah Dalam kaedah ini, tika tunggal dibuat apabila kelas dimuatkan, jadi ia boleh dijamin selamat dalam persekitaran berbilang benang
Gaya malasDalam pendekatan ini, tika tunggal dicipta pada kali pertama ia digunakan Dalam persekitaran berbilang benang, menggunakan mekanisme penguncian berganda memastikan hanya satu tikar dicipta .
package com.fanqiechaodan.singleton.singleton1; /** * @Classname Singleton * @Description */ public class Singleton { private static final Singleton INSTANCE = new Singleton(); private Singleton(){ // 私有构造函数 } public static Singleton getInstance(){ return INSTANCE; } }Kelas dalaman statikKaedah ini mengambil kesempatan daripada mekanisme pemuatan kelas Java Instance Singleton dimuatkan hanya apabila kelas SingletonHolder diakses buat kali pertama, dan boleh dilaksanakan pemuatan malas
package com.fanqiechaodan.singleton.singleton2; /** * @Classname Singleton * @Description */ public class Singleton { private static volatile Singleton instance; private Singleton() { // 私有构造函数 } public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; } }PenghitunganMenggunakan jenis penghitungan boleh melaksanakan mod tunggal selamat benang Penghitungan dibuat apabila ia ditakrifkan, jadi ia selamat untuk Benang, dan hanya ada satu instance.
package com.fanqiechaodan.singleton.singleton3; /** * @Classname Singleton * @Description */ public class Singleton { private Singleton(){ // 私有构造函数 } public static Singleton getInstance(){ return SingletonHolder.INSTANCE; } private static class SingletonHolder{ private static final Singleton INSTANCE = new Singleton(); } }
Secara umum, corak singleton penghitungan adalah pelaksanaan singleton yang mudah, cekap dan selamat yang dapat memenuhi keperluan kebanyakan corak singleton. mod untuk melaksanakan mod tunggal.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan corak tunggal corak reka bentuk ciptaan Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!