当前位置: 首页 > 编程笔记 >

PHP设计模式之策略模式原理与用法实例分析

拓拔富
2023-03-14
本文向大家介绍PHP设计模式之策略模式原理与用法实例分析,包括了PHP设计模式之策略模式原理与用法实例分析的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了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 () );
?>

运行结果:

IE

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

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

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

 类似资料:
  • 介绍 策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。 正文 在理解策略模式之前,我们先来一个例子,一般情况下,如果我们要做数据合法性验证,很多时候都是按照swith语句来判断,但是这就带来几个问题,首先如果增加需求的话,我们还要再次修改这段代码以增加逻辑,而且在进行单元测试的时候也会越来越复杂,代码如下: validato

  • 本文向大家介绍Python设计模式之解释器模式原理与用法实例分析,包括了Python设计模式之解释器模式原理与用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python设计模式之解释器模式原理与用法。分享给大家供大家参考,具体如下: 解释器模式(Interpreter Pattern):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的

  • 本文向大家介绍Python设计模式之策略模式实例详解,包括了Python设计模式之策略模式实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python设计模式之策略模式。分享给大家供大家参考,具体如下: 策略模式(Strategy Pattern):它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户. 下面是一个商场活动的实现 运行

  • 本文向大家介绍php设计模式之策略模式应用案例详解,包括了php设计模式之策略模式应用案例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php设计模式之策略模式应用。分享给大家供大家参考,具体如下: 策略模式 定义: 策略模式定义一系列的算法,将每个算法封装起来,并让它们可以相互装换。策略模式让算法独立于使用它的客户而独立变化。 角色分析: 抽象策略角色:策略类,通常由一个接口或者抽

  • 本文向大家介绍javascript设计模式 – 模板方法模式原理与用法实例分析,包括了javascript设计模式 – 模板方法模式原理与用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript设计模式 – 模板方法模式原理与用法。分享给大家供大家参考,具体如下: 介绍:模板方法模式是结构最简单的行为型设计模式,在其结构中只存在父类与子类之间的继承关系。使用模板方法

  • 本文向大家介绍javascript设计模式 – 原型模式原理与应用实例分析,包括了javascript设计模式 – 原型模式原理与应用实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript设计模式 – 原型模式原理与应用。分享给大家供大家参考,具体如下: 介绍:在日常的开发过程中,我们经常会利用到前端模板引擎来做页面渲染,因为存在很多页面结构相同,内容不同的场景。这种