加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

PHP策略模式包含哪些 核心代码是什么

发布时间:2023-07-11 13:35:33 所属栏目:语言 来源:
导读:这篇文章给大家分享的是PHP策略模式包括哪些,核心代码是什么。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。抽象策

这篇文章给大家分享的是PHP策略模式包括哪些,核心代码是什么。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。

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

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

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

核心代码

_strategy = $strategy;

}

public function contextInterface() {

$this->_strategy->algorithmInterface();

}

}

// client

$strategyA = new ConcreteStrategyA();

$context = new Context($strategyA);

$context->contextInterface();

$strategyB = new ConcreteStrategyB();

$context = new Context($strategyB);

$context->contextInterface();

$strategyC = new ConcreteStrategyC();

$context = new Context($strategyC);

$context->contextInterface();

其他代码

";

}

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

";

// 文件缓存构造函数

}

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

";

// 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()); // 改变缓存策略

?>

感谢各位的阅读,以上就是“PHP策略模式包括哪些,核心代码是什么”的内容了,经过本文的学习后,相信大家对PHP策略模式包括哪些,核心代码是什么都有更深刻的体会了吧。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!