Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah corak pemerhati berfungsi dalam PHP?

Bagaimanakah corak pemerhati berfungsi dalam PHP?

WBOY
WBOYasal
2024-06-03 14:09:02244semak imbas

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.

Bagaimanakah corak pemerhati berfungsi dalam PHP?

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

rreeee

Kes 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!

Kenyataan:
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