Junior — Middle
Alkalmazta-e az 'Megfigyelő' mintát a projektjeiben?
sobes.tech MI
Válasz az MI-től
Igen, a "Megfigyelő" (Observer) minta PHP projektekben használták eseményalapú modell megvalósítására, ahol egy objektum (tárgy) értesíti sok más objektumot (megfigyelőket) az állapotának változásairól.
Példa PHP-ben:
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() {
// Állapot változtatása
$this->notify('Állapot változott');
}
}
class ConcreteObserver implements Observer {
public function update(string $eventData) {
echo "Értesítés érkezett: $eventData\n";
}
}
$subject = new Subject();
$observer = new ConcreteObserver();
$subject->attach($observer);
$subject->changeState();
Ez a megközelítés segít elkülöníteni az állapotváltozás logikáját a változásokra adott reakciótól, javítva a kód bővíthetőségét és karbantarthatóságát.