当前位置:编程学习 > > 正文

php运行模式图解(php策略模式简单示例分析区别于工厂模式)

时间:2021-10-18 11:46:29类别:编程学习

php运行模式图解

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

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

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

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

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

示例:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • //实现一个简单的计算器
  • interface MathOp{
  •   public function calculation($num1,$num2);
  • }
  • //加法
  • class MathAdd implements MathOp{
  •   public function calculation($num1,$num2){
  •     return $num1 + $num2;
  •   }
  • }
  • //减法
  • class MathSub implements MathOp{
  •   public function calculation($num1,$num2){
  •     return $num1 - $num2;
  •   }
  • }
  • //乘法
  • class MathMulti implements MathOp{
  •   public function calculation($num1,$num2){
  •     return $num1 * $num2;
  •   }
  • }
  • //除法
  • class Mathli implements MathOp{
  •   public function calculation($num1,$num2){
  •     return $num1 / $num2;
  •   }
  • }
  • class Op{
  •   protected $op_class = null;
  •   public function __construct($op_type){
  •     $this->op_class = 'Math' . $op_type;
  •   }
  •   public function get_result($num1,$num2){
  •     $cls = new $this->op_class;
  •     return $cls->calculation($num1,$num2);
  •   }
  • }
  • $obj = new Op('Add');
  • echo $obj->get_result(6,2);//8
  • $obj = new Op('Sub');
  • echo $obj->get_result(6,5);//1
  • $obj = new Op('Multi');
  • echo $obj->get_result(6,2);//12
  • $obj = new Op('li');
  • echo $obj->get_result(6,2);//3
  • 希望本文所述对大家PHP程序设计有所帮助。

    原文链接:https://www.cnblogs.com/gyfluck/p/9681273.html

    标签:
    上一篇下一篇

    猜您喜欢

    热门推荐