Rumah >pembangunan bahagian belakang >tutorial php >Memahami Corak Singleton dengan Contoh PHP
Corak tunggal ialah corak reka bentuk yang mengehadkan instantiasi kelas kepada satu tika. Ini amat berguna apabila tepat satu objek diperlukan untuk menyelaraskan tindakan merentas sistem.
Ciri-ciri Utama Corak Singleton
Bayangkan Senario Ini
Untuk lebih memahami corak tunggal, mari kita fikirkannya dalam istilah yang lebih mudah, seperti mempunyai mainan istimewa yang hanya boleh dimiliki oleh seorang. Begini cara ia berfungsi:
Satu Mainan: Bayangkan tongkat ajaib yang sangat istimewa. Hanya seorang kanak-kanak boleh memiliki tongkat ajaib ini pada satu masa. Kalau orang lain nak guna mesti tanya anak tu.
Menyimpannya Selamat: Kanak-kanak ini menyimpan tongkat sakti di tempat yang selamat (seperti kotak mainan) supaya tidak ada orang lain yang boleh merebutnya dan membawanya pergi.
Meminta Mainan: Setiap kali rakan ingin bermain dengan tongkat sakti, mereka perlu bertanya kepada anak istimewa itu. Kanak-kanak akan berkongsi, tetapi mereka sahaja yang boleh menentukan masa dan cara untuk berkongsinya.
Bagaimana Ini Berkaitan dengan Corak Singleton
Satu Contoh: Sama seperti hanya terdapat satu tongkat ajaib, dalam corak tunggal, terdapat hanya satu contoh (atau salinan) kelas. Anda boleh menganggap kelas ini sebagai rangka tindakan untuk membuat objek (seperti mainan).
Akses Peribadi: Kotak mainan (atau pembina) ditutup kepada orang lain. Ini bermakna tiada siapa yang boleh mencipta tongkat ajaib baharu; mereka perlu menggunakan satu tongkat yang ada.
Mendapatkan Mainan: Apabila seseorang ingin menggunakan tongkat ajaib (atau kelas), mereka perlu melalui pintu khas (kaedah yang dipanggil getInstance()). Pintu ini memeriksa sama ada tongkat sakti itu sudah ada. Jika tidak, ia menghasilkan satu dan memberikannya kepada mereka.
Contoh dalam PHP
Berikut ialah pelaksanaan mudah corak tunggal dalam PHP:
class MagicWand { private static $instance = null; // This is our one and only wand // This keeps anyone from making a new wand private function __construct() { } // This is the door to get the wand public static function getInstance() { if (self::$instance === null) { self::$instance = new MagicWand(); // Making the wand if it doesn't exist } return self::$instance; // Giving back the wand } public function castSpell() { echo "Casting a spell!"; } } // Using the magic wand $wand = MagicWand::getInstance(); $wand->castSpell(); // Now we can cast spells with the one and only wand!
Dalam analogi ini:
Sama seperti bagaimana hanya seorang kanak-kanak boleh memiliki tongkat ajaib, dalam pengaturcaraan, kami menggunakan corak tunggal untuk memastikan bahawa hanya satu contoh kelas wujud, dan semua orang perlu memintanya apabila mereka mahu menggunakannya!
Corak ini membantu mengurus sumber dengan cekap dan mengekalkan keadaan yang konsisten merentas aplikasi anda, menjadikannya konsep penting dalam reka bentuk perisian.
Guru Pemfaktoran Semula - Corak Singleton
Atas ialah kandungan terperinci Memahami Corak Singleton dengan Contoh PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!