zoukankan      html  css  js  c++  java
  • PHP设计模式-策略模式 转

    策略模式(Strategy Pattern)

    策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。

    策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。

    策略模式的三个角色:

    1.抽象策略角色

    2.具体策略角色

    3.环境角色(对抽象策略角色的引用)

    实现步骤:

    1.定义抽象角色类(定义好各个实现的共同抽象方法)

    2.定义具体策略类(具体实现父类的共同方法)

    3.定义环境角色类(私有化申明抽象角色变量,重载构造方法,执行抽象方法)

    策略模式的代码实例:

    复制代码
    <?php
    
        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 () );
        
    ?>
    复制代码

    就在编程领域之外,有许多例子是关于策略模式的。例如:

    如果我需要在早晨从家里出发去上班,我可以有几个策略考虑:我可以乘坐地铁,乘坐公交车,走路或其它的途径。每个策略可以得到相同的结果,但是使用了不同的资源。

    http://www.cnblogs.com/yangjinjin/archive/2013/01/31/2887498.html

     

  • 相关阅读:
    Pandas的merge并对比SQL中join
    常用cron表达式
    基于Python3实现的各类数据库连接和连接池
    JS 原生 push对象到数组中遇到的问题
    H5移动端IOS音频自动播放解决
    微信小程序,购物车模块代码解读
    小程序,wx.request请求数据服务器配置
    &&和||短路逻辑运算
    小程序,wx.request;动态向服务器端请求数据。
    微信小程序页面跳转
  • 原文地址:https://www.cnblogs.com/brady-wang/p/6021740.html
Copyright © 2011-2022 走看看