Dalam PHP, singleton bermaksud bahawa kelas mempunyai satu dan hanya satu contoh Ia merujuk kepada corak reka bentuk di mana kelas tertentu dalam keseluruhan aplikasi hanya mempunyai satu contoh objek dalam corak tunggal akan menjejaskan keseluruhan aplikasi Sistem menyediakan contoh ini secara global dan tidak mencipta salinan contoh itu, sebaliknya, ia mengembalikan rujukan kepada contoh yang disimpan di dalam kelas tunggal.
Persekitaran pengendalian artikel ini: sistem Windows 10, PHP versi 7.1, komputer Dell G3
Corak tunggal merujuk kepada corak reka bentuk di mana kelas tertentu hanya mempunyai satu contoh objek dalam keseluruhan aplikasi. Khususnya, sebagai kaedah penciptaan objek, corak tunggal memastikan bahawa kelas hanya mempunyai satu contoh, membuat instantiat sendiri dan menyediakan contoh ini secara global kepada keseluruhan sistem. Ia tidak mencipta salinan contoh, tetapi mengembalikan rujukan kepada contoh yang disimpan di dalam kelas tunggal.
Sebuah kelas mempunyai satu dan hanya satu contoh, dan ia dijadikan instantiated dan disediakan kepada keseluruhan program untuk digunakan. Ini boleh difahami sebagai memastikan bahawa kelas ini mempunyai satu dan hanya satu contoh semasa keseluruhan program berjalan, dan menyediakan satu kepada dunia luar Akses pusat akses globalnya.
Ciri corak tunggal
Ciri utama corak tunggal ialah "tiga peribadi dan satu awam":
Memerlukan contoh unik kelas yang disimpan Pembolehubah ahli statik peribadi
Pembina mesti diisytiharkan peribadi untuk menghalang program luaran daripada memperbaharui objek dan dengan itu kehilangan makna tunggal
Fungsi klon mesti diisytiharkan peribadi kepada menghalang objek daripada diklon
Mesti menyediakan kaedah statik awam (biasanya dinamakan getInstance) untuk mengakses tika ini, sekali gus mengembalikan rujukan kepada tika unik.
Sebab dan senario untuk menggunakan mod tunggal
Dalam kebanyakan aplikasi PHP, akan terdapat sejumlah besar operasi pangkalan data jika mod tunggal tidak digunakan, maka setiap kali Operasi baru diperlukan, tetapi setiap yang baru akan menggunakan banyak sumber sistem dan sumber memori, dan setiap kali pangkalan data dibuka dan ditutup, ia adalah ujian yang hebat dan pembaziran pangkalan data. Oleh itu, corak tunggal sering digunakan dalam kelas operasi pangkalan data.
Begitu juga, jika kelas diperlukan untuk mengawal maklumat konfigurasi tertentu dalam sistem secara global, ia boleh dilaksanakan dengan mudah menggunakan mod tunggal.
Pelaksanaan mod tunggal PHP
Berikut ialah rangka kerja untuk mod tunggal PHP untuk melaksanakan kelas operasi pangkalan data
<?php class Db{ const DB_HOST='localhost'; const DB_NAME=''; const DB_USER=''; const DB_PWD=''; private $_db; //保存实例的私有静态变量 private static $_instance; //构造函数和克隆函数都声明为私有的 private function __construct(){ //$this->_db=mysql_connect(); } private function __clone(){ //实现 } //访问实例的公共静态方法 public static function getInstance(){ if(!(self::$_instance instanceof self)){ self::$_instance=new self(); } //或者 if(self::$_instance===null){ self::$_instance=new Db(); } return self::$_instance; } public function fetchAll(){ //实现 } public function fetchRow(){ //实现 } } //类外部获取实例的引用 $db=Db::getInstance(); ?>
Kajian yang disyorkan: "Tutorial video PHP》
Atas ialah kandungan terperinci Apakah maksud singleton dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!