Wzorce projektowe – Memento
Założenie: Zrozumieć i zaimplementować wzorzec projektowy Memento w PHP, aby zapisywać i przywracać stan obiektu bez naruszania jego kapsułkowania.
Krok po kroku:
- Tworzenie klasy Originator: Klasa przechowująca stan, który chcemy zapisać.
state = $state; } public function getState() { return $this->state; } public function createMemento() { return new Memento($this->state); } public function restoreFromMemento(Memento $memento) { $this->state = $memento->getState(); } } ?>
Ta klasa posiada metodę `setState` do ustawiania stanu, `getState` do pobierania stanu, `createMemento` do tworzenia obiektu Memento i `restoreFromMemento` do przywrócenia stanu z obiektu Memento.
- Tworzenie klasy Memento: Klasa przechowująca stan obiektu Originator.
state = $state; } public function getState() { return $this->state; } } ?>
Klasa ta przechowuje stan i udostępnia go za pomocą metody `getState`.
- Użycie klas: Przykład użycia klas Originator i Memento.
setState('Stan początkowy'); $memento = $originator->createMemento(); $originator->setState('Stan zmieniony'); echo "Stan aktualny: " . $originator->getState() . "
"; $originator->restoreFromMemento($memento); echo "Stan przywrócony: " . $originator->getState(); ?>W tym przykładzie tworzymy obiekt `Originator`, ustawiamy jego stan, tworzymy obiekt `Memento` przechowujący ten stan, zmieniamy stan `Originator` i na końcu przywracamy go z obiektu `Memento`.
Ten przykład pokazuje podstawowe zastosowanie wzorca projektowego Memento. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z bardziej zaawansowanymi przykładami.