Corak Pemerhati dalam PHP ialah corak reka bentuk yang membolehkan pemerhati melanggan dan bertindak balas terhadap perubahan keadaan dalam topik. Apabila keadaan topik berubah, ia memberitahu pemerhati, yang boleh mengemas kini diri mereka dengan sewajarnya: kelas topik mengekalkan senarai pemerhati dan menyediakan kaedah untuk melampirkan dan mengalih keluar pemerhati. Kelas topik menyediakan kaedah untuk mendapatkan dan menetapkan keadaan, dan mencetuskan pemberitahuan pemerhati apabila keadaan berubah. Kelas pemerhati mentakrifkan kaedah kemas kini yang dipanggil apabila keadaan subjek berubah. Kelas pemerhati konkrit melaksanakan kaedah kemas kini untuk mengemas kini logik mereka sendiri. Dalam amalan, pemerhati melanggan topik dan apabila keadaan topik berubah, pemerhati dimaklumkan dan mengemas kini sendiri.
Bagaimana Corak Pemerhati berfungsi dalam PHP
Pengenalan
Corak Pemerhati ialah corak reka bentuk perisian yang membolehkan objek (dipanggil pemerhati) melanggan untuk menyatakan perubahan objek lain dan (memanggil topik yang dijawab) kepadanya. Apabila keadaan topik berubah, ia memberitahu semua pemerhati dan pemerhati boleh mengemas kini diri mereka dengan sewajarnya. struktur kod
rreeeeKes Praktikal
Kita boleh menggunakan contoh kod berikut untuk menggambarkan aplikasi corak Pemerhati dalam amalan:
class Subject { private $observers = []; private $state; public function attach(Observer $observer) { $this->observers[] = $observer; } public function detach(Observer $observer) { $index = array_search($observer, $this->observers); if ($index !== false) { unset($this->observers[$index]); } } public function getState() { return $this->state; } public function setState($state) { $this->state = $state; $this->notifyObservers(); } private function notifyObservers() { foreach ($this->observers as $observer) { $observer->update($this); } } }
Apabila status topik dikemas kini, semua pemerhati yang melanggannya akan dimaklumkan dan mengemas kini diri mereka dengan sewajarnya.
Atas ialah kandungan terperinci Bagaimanakah corak pemerhati berfungsi dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!