zoukankan      html  css  js  c++  java
  • 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();
    }
  • 相关阅读:
    《编程之美》
    Fx Composer2.5 在Win8.1下无法运行的解决方法
    纹理坐标的探讨
    随机取两个点 ( 容易犯错的 do while )
    X文件(待续)
    函数指针
    安装DirectX SDK时出现Error Code:s1023 的解决方案(转)
    光与材质
    视棱锥
    D3D支持的图元类型
  • 原文地址:https://www.cnblogs.com/onephp/p/6107012.html
Copyright © 2011-2022 走看看