php设计模式 Strategy(策略模式)
php  /  管理员 发布于 7年前   186
抽象策略(Strategy)角色:定义所有支持的算法的公共接口。通常是以一个接口或抽象来实现。Context使用这个接口来调用其ConcreteStrategy定义的算法。 具体策略(ConcreteStrategy)角色:以Strategy接口实现某具体算法。 环境(Context)角色:持有一个Strategy类的引用,用一个ConcreteStrategy对象来配置 核心代码 其他代码 具体的大家可以多关注一下AIDI以前发布的文章_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()); // 改变缓存策略 ?>您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号