策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。
    策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。
    策略模式的三个角色:
    1.抽象策略角色
    2.具体策略角色
    3.环境角色(对抽象策略角色的引用)
    实现步骤:
    1.定义抽象角色类(定义好各个实现的共同抽象方法)
    2.定义具体策略类(具体实现父类的共同方法)
    3.定义环境角色类(私有化申明抽象角色变量,重载构造方法,执行抽象方法)
    就在编程领域之外,有许多例子是关于策略模式的。
    例如:
    如果我需要在早晨从家里出发去上班,我可以有几个策略考虑:我可以乘坐地铁,乘坐公交车,走路或其它的途径。每个策略可以得到相同的结果,但是使用了不同的资源。
    示例代码 :

    1. <?php
    2. abstract class baseAgent{
    3. abstract function dosome();
    4. }
    5. class ieAgent extends baseAgent{
    6. public function dosome(){
    7. return "IE";
    8. }
    9. }
    10. class googleAgent extends baseAgent{
    11. public function dosome(){
    12. return "Google";
    13. }
    14. }
    15. class Browser{
    16. public function call($object){
    17. return $object->dosome();
    18. }
    19. }
    20. $li=new Browser();
    21. echo $li->call(new googleAgent());