美文网首页PHP高级技能
php5大设计模式-策略模式

php5大设计模式-策略模式

作者: AISpider | 来源:发表于2019-05-08 08:17 被阅读0次

策略模式

定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。
完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。

header("Content-type:text/html;Charset=utf-8");
//抽象策略接口
abstract class Strategy{
    abstract function wayToSchool();
}
//具体策略角色
class BikeStrategy extends Strategy{
    function wayToSchool(){
         echo "骑自行车去上学";
    }
}
class BusStrategy extends Strategy{
    function wayToSchool(){
         echo "乘公共汽车去上学";
    }
}
class TaxiStrategy extends Strategy{
    function wayToSchool(){
         echo "骑出租车去上学";
    }
}

//环境角色
class Context{
    private $strategy;
    //获取具体策略
    function getStrategy($strategyName){
        try{
            # PHP Reflection API是PHP5才有的新功能,
            # 它是用来导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。
            $strategyReflection = new ReflectionClass($strategyName);

            #newInstance 用来实例化类
            $this->strategy = $strategyReflection->newInstance();

        }catch(ReflectionException $e){
             $this->strategy = ""; 
        }       
    }

    function goToSchool(){
        $this->strategy->wayToSchool();
        // var_dump($this->strategy);
    }
}
//测试
$context = new Context();
$context->getStrategy("BusStrategy");
$context->goToSchool();
 ?>

参考文章:
https://www.cnblogs.com/leedaily/p/8250158.html
http://www.cnblogs.com/yujon/p/5538464.html

相关文章

  • php5大设计模式-策略模式

    策略模式 定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,也称...

  • 设计模式实践

    工厂模式 策略模式 状态模式 责任链模式 代理模式 单例模式 适配器模式 设计模式原则 面向对象的设计模式有七大基...

  • 简说设计模式之策略模式

    前言:对于设计模式基础概念可以去看[简说设计模式之设计模式概述] 一、什么是策略模式 策略(Strategy)模式...

  • 设计模式(Swift) - 单例模式、备忘录模式和策略模式

    设计模式(Swift) - 单例模式、备忘录模式和策略模式 设计模式(Swift) - 单例模式、备忘录模式和策略模式

  • 11.7设计模式-策略模式-详解

    设计模式-策略模式 策略模式详解 策略模式在android中的实际运用 1.策略模式详解 2.策略模式在andro...

  • 设计模式笔记汇总

    目录 设计原则 “依赖倒置”原则 未完待续... 设计模式 设计模式——策略模式 设计模式——装饰者模式 设计模式...

  • 设计模式[13]-策略模式-Strategy Pattern

    1.策略模式简介 策略模式(Strategy Patter)是行为型(Behavioral)设计模式,策略模式封装...

  • 设计模式-策略模式

    设计模式-策略模式 定义 策略模式(Strategy Pattern)也叫政策模式(Policy Pattern)...

  • 设计模式之策略模式

    设计模式(策略模式实战) 一.分类 java的设计模式大体上分为三大类: 创建型模式(5种): 工厂方法模式,抽象...

  • 策略模式(详解)

    策略模式(来自HeadFirst设计模式) 今天看了 Head First 设计模式的第一个模式,居然是策略模式,...

网友评论

    本文标题:php5大设计模式-策略模式

    本文链接:https://www.haomeiwen.com/subject/pdspoqtx.html