您的位置:首页 > 编程语言 > PHP开发

php,java实现备忘录模式

2017-04-10 08:56 423 查看
适用于想要回复某个时间点的数据,类似于数据库的恢复。

类图:



java实现:

原始类

public class Originator {

private String status = "";

public void setStatus(String status){
this.status = status;
}

public String getStatus(){
return this.status;
}

public Memento createMemento(){
return new Memento(this.getStatus());
}

public void restoreMemento(Memento memento){
this.setStatus(memento.getStatus());
}
}


备忘录类

public class Memento {

private String status="";

public Memento(String status){
this.status = status;
}

public void setStatus(String status){
this.status = status;
}

public String getStatus(){
return this.status;
}
}


管理类

public class MementoManager {

private Memento memento;

public void setMemento(Memento memento){
this.memento = memento;
}

public Memento getMemento(){
return memento;
}
}


场景类

ublic class Client {

public static void main(String[] args){
Originator originator = new Originator();
MementoManager mementoManager  = new MementoManager();
mementoManager.setMemento(originator.createMemento());
originator.restoreMemento(mementoManager.getMemento());
}
}


php实现

class Originator
{
private $status = '';

public function setStatus($status)
{
$this->status = $status;
}

public function getStatus()
{
return $this->status;
}

public function createMemento()
{
return new Memento($this->status);
}

public function restorMemento(Memento $m)
{
$this->setStatus($m->getStatus());
}
}

class Memento
{
private $status;

public function __construct($status)
{
$this->status = $status;
}

public function getStatus()
{
return $this->status;
}
}

class MementoManager
{
private $memento;

public function getMemento()
{
return $this->$memento;
}

public function setMemento(Memento $memento)
{
$this->memento = $memento;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java php