PHP 策略模式
策略模式:
将一组特定的行为和算法封装成类,以适应某些特定的上下文环境.这种模式就是策略模式.
<?php namespace FrameWork; /** * 策略模式 * 根据不同性别展示不同内容 * 一下代码 示意 一个商城系统 根据用户不同性别 展示不同的广告和分类 */ interface UserStrategy { //展示广告 public function showAd(); //展示分类 public function showCategory(); } //男性策略类 class MaleStrategy implements UserStrategy { public function showAd() { echo '男士广告iphone 6s'; } public function showCategory() { echo '男士显示电子产品'; } } //女性策略类 class FemaleStrategy implements UserStrategy { public function showAd() { echo '女士广告 Dior香水'; } public function showCategory() { echo '女士 女装'; } } //页面展示类 class Page { protected $strategy; //展示页面 public function Index() { $this->strategy->showAd(); $this->strategy->showCategory(); } //设置策略 public function setStrategy(UserStrategy $strategy) { $this->strategy = $strategy; } } if(isset($_REQUEST['sex'])){ //设置了 性别 $strategy = new MaleStrategy(); $page = new Page(); $page->setStrategy($strategy); $page->Index(); }