private $_state = null; public function getState() { return $this->_state; } public function setState($state) { $this->_state = $state; } public function createMemento() { return new Memento($this->_state); } public function setMemento($memento) { $this->_state = $memento->getState(); } public function display() { echo "state = " . $this->_state . "<br/>"; } } $objOriginator = new Originator(); $objOriginator->setState(0); $objOriginator->display(); $objCareTaker = new CareTaker(); $objCareTaker->setMemento($objOriginator->createMemento()); $objOriginator->setState(1); $objOriginator->display(); $objOriginator->setMemento($objCareTaker->getMemento()); $objOriginator->display();
<?php require_once './Memento.php'; require_once './Workout.php'; require_once './CareTaker.php'; $workout = new Workout(); $workout->running(); $care_taker = new CareTaker(); $memento = $workout->createMemento(); $care_taker->saveMemento($memento); $workout->bicycle(); $workout->setMemento($care_taker->retriveMemento()); $workout->abdominal_ripper_x();