public function testMemento() { $originator = new Originator(); $caretaker = new Caretaker(); $originator->state = "On"; $caretaker->memento = $originator->createMemento(); $originator->state = "Off"; $originator->setMemento($caretaker->memento); $this->assertEquals($originator->state, 'On'); }
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();
public function __construct() { $this->first = 'first'; $this->second = 'second'; $this->ct = new Caretaker(); $this->orig = new Originator(); $this->orig->setState($this->first); $this->ct->addMemento($this->orig->createMemento()); $this->orig->setState($this->second); $this->ct->addMemento($this->orig->createMemento()); $this->orig->setMemento($this->ct->getMemento(1)); echo $this->orig->state; }