Memahami Corak Singleton dengan Contoh PHP

PHPz
Lepaskan: 2024-08-25 06:39:32
asal
742 orang telah melayarinya

Understanding the Singleton Pattern with PHP Example

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

  • Pembina Persendirian: Menghalang instantiasi langsung dari luar kelas.
  • Kaedah Statik: Menyediakan titik global akses kepada contoh.
  • Permulaan Malas: Contoh dibuat hanya apabila ia diperlukan.

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:

  1. 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.

  2. 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.

  3. 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!
Salin selepas log masuk

Ringkasan

Dalam analogi ini:

  • Tongkat Ajaib mewakili kelas tunggal kami.
  • The One Child melambangkan satu contoh yang mengawal akses.
  • Kotak Mainan menyimpan pembina secara peribadi, memastikan tiada sesiapa boleh membuat kejadian tambahan.
  • Pintu Istimewa ialah kaedah getInstance() yang memberikan akses kepada tongkat ajaib.

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!

sumber:dev.to
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!