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

    <?php
    /** PHP 策略模式
     * 策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。
     * 策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。
     *
     * 策略模式的三个角色:
     *  1.抽象策略角色
     *  2.具体策略角色
     *  3.环境角色(对抽象策略角色的引用)
     *
     * 实现步骤:
     *  1.定义抽象角色类(定义好各个实现的共同抽象方法)
     *  2.定义具体策略类(具体实现父类的共同方法)
     *  3.定义环境角色类(私有化申明抽象角色变量,重载构造方法,执行抽象方法)
     *
     * 就在编程领域之外,有许多例子是关于策略模式的。例如:
     * 如果我需要在早晨从家里出发去上班,我可以有几个策略考虑:我可以乘坐地铁,乘坐公交车,走路或其它的途径。每个策略可以得到相同的结果,但是使用了不同的资源。
     */
    
    //抽象策略类
    abstract class baseAgent
    {
        abstract function PrintPage();
    }
    
    //用于客户端是IE时调用的类(环境角色)
    class ieAgent extends baseAgent
    {
        function PrintPage()
        {
            return 'IE';
        }
    }
    
    //用于客户端不是IE时调用的类(环境角色)
    class otherAgent extends baseAgent
    {
        function PrintPage()
        {
            return 'not IE';
        }
    }
    
    //具体策略角色
    class Browser
    {
        public function call($object)
        {
            return $object->PrintPage();
        }
    }
    
    $bro = new Browser();
    echo $bro->call(new ieAgent()); //输出结果:IE
    echo $bro->call(new otherAgent()); //输出结果:not IE
  • 相关阅读:
    CSS3权威指南 25.CSS3中的动画功能
    CSS3权威指南 24.CSS3中的变形处理
    CSS3权威指南 23.背景与边框相关样式
    CSS3权威指南 22.盒相关样式
    CSS3权威指南 20.使用选择器在页面中插入内容
    CSS3权威指南 19.选择器
    vivado中如何使用chipscope
    示波器X1探头和X10探头
    两个MMCM共享时钟输入时的严重警告和错误
    ZYNQ基础知识一
  • 原文地址:https://www.cnblogs.com/rxbook/p/10385147.html
Copyright © 2011-2022 走看看