Sobes.tech
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();

ეს მიდგომა ეხმარება მდგომარეობის ცვლილების ლოგიკის გამოყოფას ამ ცვლილებებზე რეაგირების ლოგიკიდან, რაც აუმჯობესებს კოდის გაფართოებას და შენარჩუნებას.