复制代码代码如下所示:
< PHP

*策略模式(策略PHP)
*
*定义一系列的算法,将它们一一封装,并使它们互换,算法的变化可以独立于使用它的客户。
*
* /

下面是一系列的 - -关闭算法。
接口cachetable
{
公共函数获取($密钥);
公共函数集($,$,value);
公共函数del(key);
}

不要使用缓存
类的使用实现了cachetable
{
公共功能__construct(){
回声使用非缓存;
}

公共函数获取($密钥)
{
返回false;
}

公共函数集($,$,value)
{
返回true;
}

公共函数del(key)
{
返回false;
}
}

文件缓存
filecache cachetable类实现
{
公共功能__construct()
{
回声使用filecache ;
文件缓存/构造函数
}

公共函数获取($密钥)
{
获取文件缓存的get方法
}

公共函数集($,$,value)
{
用于实现文件缓存的set方法
}

公共函数del(key)
{
方法实现文件缓存
}
}

/ / ttserver
ttcache cachetable类实现
{
公共功能__construct()
{
回声使用ttcache ;
/ / ttserver缓存构造函数
}

公共函数获取($密钥)
{
/ /获得方法实现ttserver缓存
}

公共函数集($,$,value)
{
/ /设置实现ttserver缓存方法
}

公共函数del(key)
{
/ /删除方法实现ttserver缓存
}
}

下面是策略的使用,没有缓存
类模型
{
私人_cache美元;
公共功能__construct()
{
美元-> _cache =新的使用();
}

公共功能setcache($缓存)
{
美元-> _cache = $缓存;
}
}

类用户模型扩展模型
{
}

类porductmodel扩展模型
{
公共功能__construct()
{
美元-> _cache =新ttcache();
}
}

一个例子是:
mdluser美元=新的用户模型();
$mdlProduct = new PorductModel ();
mdlproduct美元-> setcache(新)(filecache);/ /改变缓存策略
>