Rumah > Artikel > pembangunan bahagian belakang > Bermula dengan PHP: Corak Pemerhati
Dalam pembangunan perisian moden, corak reka bentuk ialah konsep yang digunakan secara meluas. Corak reka bentuk ialah penyelesaian biasa yang ditemui dalam sistem perisian yang diuji dan terbukti membantu pembangun membina aplikasi perisian yang kompleks dengan lebih cekap. Corak pemerhati ialah salah satu corak reka bentuk yang paling biasa, dan ia juga merupakan konsep penting yang perlu dikuasai oleh pembangun PHP.
Dalam artikel ini, kami akan memperkenalkan konsep dan pelaksanaan corak Pemerhati dan menunjukkan cara menggunakannya dalam aplikasi PHP.
Apakah corak pemerhati?
Corak pemerhati ialah corak reka bentuk berasaskan peristiwa Ia berdasarkan perhubungan pergantungan satu-ke-banyak antara objek, supaya apabila keadaan objek berubah, semua objek yang bergantung padanya boleh dimaklumkan. . dan dikemas kini secara automatik.
Dalam pola pemerhati, terdapat dua peranan penting: Subjek dan Pemerhati. Subjek ialah pusat objek, digunakan untuk menyimpan keadaan dan memberitahu perubahan dalam keadaan semasa. Pemerhati ialah contoh objek yang melanggan perubahan keadaan dalam Subjek Apabila keadaan Subjek berubah, Pemerhati akan dimaklumkan dan mengemas kini keadaannya sendiri.
Melaksanakan corak pemerhati dalam PHP
Sangat mudah untuk melaksanakan corak pemerhati dalam PHP Oleh kerana ciri-ciri bahasa PHP, kita boleh melaksanakan corak ini dengan cepat. Berikut ialah kaedah untuk melaksanakan corak pemerhati dalam kod sampel:
<?php interface Subject { public function registerObserver(Observer $observer); public function removeObserver(Observer $observer); public function notifyObservers(); } interface Observer { public function update(); } class Product implements Subject { private $observers = array(); private $name; public function __construct($name) { $this->name = $name; } public function registerObserver(Observer $observer) { $this->observers[] = $observer; } public function removeObserver(Observer $observer) { $key = array_search($observer, $this->observers, true); if ($key !== false) { unset($this->observers[$key]); } } public function notifyObservers() { foreach ($this->observers as $observer) { $observer->update($this->name); } } public function setName($name) { $this->name = $name; $this->notifyObservers(); } public function getName() { return $this->name; } } class ProductObserver implements Observer { private $name; public function __construct($name) { $this->name = $name; } public function update($name) { echo $this->name . " has been updated to " . $name . "<br>"; } } $product = new Product("Product A"); $observerA = new ProductObserver("Observer A"); $observerB = new ProductObserver("Observer B"); $product->registerObserver($observerA); $product->registerObserver($observerB); $product->setName("New Product"); $product->removeObserver($observerB); $product->setName("Another Product");
Dalam kod di atas, kami mentakrifkan tiga antara muka: Subjek, Pemerhati dan Produk. Kelas Produk melaksanakan antara muka Subjek dan mengekalkan tatasusunan $observers. Kaedah registerObserver(), removeObserver() dan notifyObservers() digunakan untuk menambah, mengalih keluar dan memberitahu pemerhati.
Kelas ProductObserver melaksanakan antara muka Observer dan mengatasi kaedah kemas kini() untuk menerima pemberitahuan apabila status Subjek berubah.
Selepas mencipta tika Produk, kami boleh mencipta dan mendaftar berbilang tika ProductObserver. Apabila kaedah setName() dipanggil untuk menukar nama Produk, kaedah notifyObservers() akan dipanggil dan semua kejadian ProductObserver berdaftar akan menerima pemberitahuan. Jika kami tidak mahu terus menerima pemberitahuan, kami boleh memanggil kaedah removeObserver().
Ringkasan
Corak pemerhati ialah corak reka bentuk yang sangat berguna yang membolehkan objek berbeza berinteraksi antara satu sama lain dan bekerjasama. Dalam PHP, melaksanakan corak Observer adalah sangat mudah dan sesuai untuk pelbagai senario aplikasi. Jika anda seorang pembangun PHP, adalah sangat penting untuk menguasai corak Pemerhati, yang akan membantu anda mereka bentuk dan membina aplikasi berkualiti tinggi dengan lebih baik.
Atas ialah kandungan terperinci Bermula dengan PHP: Corak Pemerhati. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!