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

php策略模式简单示例分析【区别于工厂模式】

发布:smiling 来源: PHP粉丝网  添加日期:2021-12-22 16:31:51 浏览: 评论:0 

本文实例讲述了php策略模式。分享给大家供大家参考,具体如下:

策略模式和工厂模式很像。

工厂模式:着眼于得到对象,并操作对象。

策略模式:着重得到对象某方法的运行结果。

示例:

  1. //实现一个简单的计算器 
  2. interface MathOp{ 
  3.   public function calculation($num1,$num2); 
  4. //加法 
  5. class MathAdd implements MathOp{ 
  6.   public function calculation($num1,$num2){ 
  7.     return $num1 + $num2
  8.   } 
  9. //减法 
  10. class MathSub implements MathOp{ 
  11.   public function calculation($num1,$num2){ 
  12.     return $num1 - $num2
  13.   } 
  14. //乘法 
  15. class MathMulti implements MathOp{ 
  16.   public function calculation($num1,$num2){ 
  17.     return $num1 * $num2
  18.   } 
  19. //除法 
  20. class MathDiv implements MathOp{ 
  21.   public function calculation($num1,$num2){ 
  22.     return $num1 / $num2
  23.   } 
  24. class Op{ 
  25.   protected $op_class = null; 
  26.   public function __construct($op_type){ 
  27.     $this->op_class = 'Math' . $op_type
  28.   } 
  29.   public function get_result($num1,$num2){ 
  30.     $cls = new $this->op_class; 
  31.     return $cls->calculation($num1,$num2); 
  32.   } 
  33. $obj = new Op('Add'); 
  34. echo $obj->get_result(6,2);//8 
  35. $obj = new Op('Sub'); 
  36. echo $obj->get_result(6,5);//1 
  37. $obj = new Op('Multi'); 
  38. echo $obj->get_result(6,2);//12 
  39. $obj = new Op('Div'); 
  40. echo $obj->get_result(6,2);//3

Tags: php策略模式 php工厂模式

分享到: