php设计模式 Strategy(策略模式)
抽象策略(Strategy)角色:定义所有支持的算法的公共接口。通常是以一个接口或抽象来实现。Context使用这个接口来调用其ConcreteStrategy定义的算法。 具体策略(ConcreteStrategy)角色:以Strategy接口实现某具体算法。 环境(Context)角色:持有一个Strategy类的引用,用一个ConcreteStrategy对象来配置 核心代码 class ConcreteStrategyA implements Strategy { // 具体策略角色A
public function algorithmInterface() {} } class ConcreteStrategyB implements Strategy { // 具体策略角色B class ConcreteStrategyC implements Strategy { // 具体策略角色C class Context { // 环境角色 // client $strategyB = new ConcreteStrategyB(); $strategyC = new ConcreteStrategyC(); 其他代码 // ---以下是一系列算法的封闭----
interface CacheTable { public function get($key); public function set($key,$value); public function del($key); } // 不使用缓存 public function get($key) public function set($key,$value) public function del($key) // 文件缓存 public function get($key) public function set($key,$value) public function del($key) // TTServer public function get($key) public function set($key,$value) public function del($key) // -- 以下是使用不用缓存的策略 ------ public function setCache($cache) class UserModel extends Model class PorductModel extends Model // -- 实例一下 --- 具体的大家可以多关注一下编程之家以前发布的文章 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |