设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2023-01-31 11:03 所属栏目:121 来源:互联网
导读:这篇文章给大家分享的是PHP策略模式包括哪些,核心代码是什么。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。 抽象策略(Strategy)角色:定义所有支持的算法
  这篇文章给大家分享的是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策略模式包括哪些,核心代码是什么都有更深刻的体会了吧。
 

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读