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:

  1. 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.

  2. 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`.

  3. 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.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *