标签:return his this 成功 应用 date 记录 客户 div
<?php
//备忘录模式定义:备忘录模式又叫做快照模式或Token模式,在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
// 角色:
//1.发起人:负责创建一个备忘录,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。发起人能够依据须要决定备忘录存储自己的哪些内部状态。
//2.备忘录:负责存储发起人对象的内部状态,并能够防止发起人以外的其它对象訪问备忘录。备忘录有两个接口:管理者仅仅能看到备忘录的窄接口,他仅仅能将备忘录传递给其它对象。发起人却可看到备忘录的宽接口。同意它訪问返回到先前状态所须要的全部数据。
//3.管理者:负责存取备忘录,不能对内容进行訪问或者操作。
/**
* 发起人类
*/
class Sponsor{
public $time = 36000;
public $title = "奋斗者";
public $money = 0;
public function subTime(){
$this->time --;
}
public function addMoney(){
$this->money += 1000;
}
public function changeTitle($title){
$this->title = $title;
}
/**
* 备份当前的基础数据属性
* @dateTime 2017-02-13
*/
public function backup(){
return new Backup($this->time,$this->money,$this->title);
}
/**
* 数据还原
* @dateTime 2017-02-13
*/
public function reback(Backup $backup){
$this->time = $backup->time;
$this->title = $backup->title;
$this->money = $backup->money;
}
}
/**
* 存储类
*/
class Backup{
public $time;
public $title;
public $money;
public function __construct($time,$money,$title){
$this->time = $time;
$this->title = $title;
$this->money = $money;
}
}
/**
* 管理者类
*/
class Manager{
public $data;
}
//客户端应用
$Sponsor = new Sponsor();
//备份初始状态
$Manager = new Manager();
$Manager->data = $Sponsor -> backup();
while($Sponsor->time > 0){
$Sponsor -> addMoney();
$Sponsor -> subTime();
if($Sponsor->money >= 1000000)
$Sponsor -> changeTitle("骄傲者");
if($Sponsor->money >= 10000000)
$Sponsor -> changeTitle("能力者");
if($Sponsor->money >= 100000000)
$Sponsor -> changeTitle("成功者");
}
var_dump($Sponsor);
//还原初始状态
$Sponsor->reback($Manager->data);
var_dump($Sponsor);
标签:return his this 成功 应用 date 记录 客户 div
原文地址:http://www.cnblogs.com/feiyujinghong/p/6393208.html