DDR爱好者之家 Design By 杰米

抽象策略(Strategy)角色:定义所有支持的算法的公共接口。通常是以一个接口或抽象来实现。Context使用这个接口来调用其ConcreteStrategy定义的算法。

具体策略(ConcreteStrategy)角色:以Strategy接口实现某具体算法。

环境(Context)角色:持有一个Strategy类的引用,用一个ConcreteStrategy对象来配置

php设计模式 Strategy(策略模式)

核心代码

<"htmlcode">
<"Use NoCache<br/>"; 
} 

public function get($key) 
{ 
return false; 
} 

public function set($key,$value) 
{ 
return true; 
} 

public function del($key) 
{ 
return false; 
} 
} 

// 文件缓存 
class FileCache implements CacheTable 
{ 
public function __construct() 
{ 
echo "Use FileCache<br/>"; 
// 文件缓存构造函数 
} 

public function get($key) 
{ 
// 文件缓存的get方法实现 
} 

public function set($key,$value) 
{ 
// 文件缓存的set方法实现 
} 

public function del($key) 
{ 
// 文件缓存的del方法实现 
} 
} 

// TTServer 
class TTCache implements CacheTable 
{ 
public function __construct() 
{ 
echo "Use TTCache<br/>"; 
// TTServer缓存构造函数 
} 

public function get($key) 
{ 
// TTServer缓存的get方法实现 
} 

public function set($key,$value) 
{ 
// TTServer缓存的set方法实现 
} 

public function del($key) 
{ 
// TTServer缓存的del方法实现 
} 
} 

// -- 以下是使用不用缓存的策略 ------ 
class Model 
{ 
private $_cache; 
public function __construct() 
{ 
$this->_cache = new NoCache(); 
} 

public function setCache($cache) 
{ 
$this->_cache = $cache; 
} 
} 

class UserModel extends Model 
{ 
} 

class PorductModel extends Model 
{ 
public function __construct() 
{ 
$this->_cache = new TTCache(); 
} 
} 

// -- 实例一下 --- 
$mdlUser = new UserModel(); 
$mdlProduct = new PorductModel(); 
$mdlProduct->setCache(new FileCache()); // 改变缓存策略 
?>

 具体的大家可以多关注一下以前发布的文章

DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?