Junior — Middle
Loyihalaringizda 'Kuzatuvchi' shablonini qo'lladizmi?
sobes.tech AI
AIdan javob
Ha, "Observer" (Kuzatuvchi) naqshasi PHP loyihalarida voqealarga asoslangan modelni amalga oshirish uchun ishlatilgan bo'lib, bu yerda bir ob'ekt (sub'ekt) o'z holatidagi o'zgarishlar haqida ko'plab boshqa ob'ektlarga (kuzatuvchilarga) xabar beradi.
PHPda foydalanish misoli:
interface Observer {
public function update(string $eventData);
}
class Subject {
private $observers = [];
public function attach(Observer $observer) {
$this->observers[] = $observer;
}
public function notify(string $eventData) {
foreach ($this->observers as $observer) {
$observer->update($eventData);
}
}
public function changeState() {
// Holatni o'zgartirish
$this->notify('Holat o`zgardi');
}
}
class ConcreteObserver implements Observer {
public function update(string $eventData) {
echo "Xabar olindi: $eventData\n";
}
}
$subject = new Subject();
$observer = new ConcreteObserver();
$subject->attach($observer);
$subject->changeState();
Bu yondashuv holat o'zgarishini boshqarish mantiqini bu o'zgarishlarga javob berishdan ajratishga yordam beradi, bu esa kodning kengaytirilishini va texnik xizmat ko'rsatishni yaxshilaydi.