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();
    }
  • 相关阅读:
    快速幂
    1112个人赛,最长回文串常见算法讨论
    11-05-sdust-个人赛赛后随想
    UVA 1149 Bin Packing
    UVa 1608,Non-boring sequences
    UVa 10954,Add All
    UVa 714,Copying Books
    Careercup
    Careercup
    Careercup
  • 原文地址:https://www.cnblogs.com/onephp/p/6107012.html
Copyright © 2011-2022 走看看