zoukankan      html  css  js  c++  java
  • 策略模式

    定义:将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,使用策略模式可以实现Ioc,依赖倒置、控制反转
    实际应用举例:假如一个电商网站系统,针对男性女性的用户要各自跳转到不同商品类目,并且所有广告位展示不同的广告(分支逻辑)

    class Page
    {
    protected $strategy;
    function index()
    {
    echo "AD:";
    $this->strategy->showAd();
    echo "<br/>";

    echo "category:";
    $this->strategy->showCategory();
    echo "<br/>";

    }

    function setStrategy(IMoocUserStrategy $strategy)
    {
    $this->strategy = $strategy;
    }
    }

    $page = new Page;
    if (isset($_GET['female']))
    {
    $strategy = new IMoocFemaleUserStrategy();
    }
    else
    {
    $strategy = new IMoocMaleUserStrategy();
    }
    $page->setStrategy($strategy);
    $page->index();

    <?php
    namespace IMooc;

    interface UserStrategy
    {
    function showAd();
    function showCategory();
    }

    <?php
    namespace IMooc;


    class FemaleUserStrategy implements UserStrategy
    {

    function showAd()
    {
    echo "2016新款女装";
    }

    function showCategory()
    {
    echo "女装";
    }
    }

    <?php
    namespace IMooc;


    class MaleUserStrategy implements UserStrategy
    {

    function showAd()
    {
    echo "IPhone6";
    }

    function showCategory()
    {
    echo "电子产品";
    }
    }





  • 相关阅读:
    12月4日
    12月3日
    12月2日
    12月1日
    11月30日
    11月29日
    11月28日
    11月27日
    jquery mobile-按钮控件
    ap web
  • 原文地址:https://www.cnblogs.com/phonecom/p/e479387a32a8c75c3cacb36b3043b2db.html
Copyright © 2011-2022 走看看