当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-15 10:40:53 浏览: 评论:0 

这篇文章主要介绍了PHP设计模式之策略模式原理与用法,结合实例形式较为详细的分析了策略模式的概念、原理及php实现与使用策略模式的相关操作技巧,需要的朋友可以参考下。

本文实例讲述了PHP设计模式之策略模式原理与用法,分享给大家供大家参考,具体如下:

策略模式(Strategy Pattern)

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

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

策略模式的三个角色:

1. 抽象策略角色

2. 具体策略角色

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

实现步骤:

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

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

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

策略模式的代码实例:

  1. <?php 
  2.   abstract class baseAgent { //抽象策略类 
  3.     abstract function PrintPage(); 
  4.   } 
  5.   //用于客户端是IE时调用的类(环境角色) 
  6.   class ieAgent extends baseAgent { 
  7.     function PrintPage() { 
  8.       return 'IE'
  9.     } 
  10.   } 
  11.   //用于客户端不是IE时调用的类(环境角色) 
  12.   class otherAgent extends baseAgent { 
  13.     function PrintPage() { 
  14.       return 'not IE'
  15.     } 
  16.   } 
  17.   class Browser { //具体策略角色 
  18.     public function call($object) { 
  19.       return $object->PrintPage (); 
  20.     } 
  21.   } 
  22.   $bro = new Browser (); 
  23.   echo $bro->call ( new ieAgent () ); 
  24. ?> 

运行结果:IE

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

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

Tags: PHP设计模式 PHP策略模式

分享到: