Junior — Middle
თქვითი 'დაკვირვებელი' ნიმუშს თქვენს პროექტებში?
sobes.tech AI
პასუხი AI-სგან
დიახ, „მონიტორი“ (Observer) ნიმუში გამოიყენებოდა PHP პროექტებში, რათა განხორციელებულიყო მოვლენის დაფუძნებული მოდელი, სადაც ერთი ობიექტი (სუბიექტი) აცნობებს მრავალი სხვა ობიექტს (მონიტორებს) მისი მდგომარეობის ცვლილებების შესახებ.
PHP-ში გამოყენების მაგალითი:
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() {
// მდგომარეობის შეცვლა
$this->notify('მდგომარეობა შეიცვალა');
}
}
class ConcreteObserver implements Observer {
public function update(string $eventData) {
echo "შეტყობინება მიღებულია: $eventData\n";
}
}
$subject = new Subject();
$observer = new ConcreteObserver();
$subject->attach($observer);
$subject->changeState();
ეს მიდგომა ეხმარება მდგომარეობის ცვლილების ლოგიკის გამოყოფას ამ ცვლილებებზე რეაგირების ლოგიკიდან, რაც აუმჯობესებს კოდის გაფართოებას და შენარჩუნებას.