码迷,mamicode.com
首页 > Web开发 > 详细

php 工厂模式

时间:2015-04-17 01:09:30      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

php 工厂模式

 
主要讲的是简单工程模式。
 
场景:写一个简单计算器
 
普通写法:
<?php
 
 class  Calculate{
  function getResult($inputA,$inputB,$symbol){
    switch($symbol){
      case “+”:
      $result=$inputA+$inputB;
      break;
      case “-“;
      $result=$inputA-$inputB;
      break;
      default:
      $result=“”;
      break;
      }
    }
 
    }
 
//客户端代码
 
$calculate=new Calculate();
$calculate->getResult(1,2,”+”);
 
 
从上面的例子看并没有什么毛病。但是有一天需求改了,要求这个计算器能计算乘法,除法,直接加swtich分支能解决,突然有一天需求在改了,求根,更复杂的算数的时候呢?
 
 
工厂模式按照我的理解,就是提供一群类的集合,比如加法就进入加法类运算,减法进入减法类运算。
 
 
简单工程模式实现:
 
   Abstract class symbol{
    Abstract function getResult();
  }
 
//加法类
class jiafa extend symbol{
    function getResult{
    //加法运算
  }
}
 
//减法类
class jianfa extend symbol{
  function getResult{
  // 减法运算
  }
}
//乘法类
class  chengfa  extend symbol{
  function getResult{
  //乘法运算
  }
}
 
//工厂类
class factory{
  function calculate($params){
    switch($params){
    case “+”:
    $operate=new jiafa();
    $operate->getResult;
    break;
    case “-“:
    $operate=new jianfa();
     $operate->getResult;
     break;
    ...
  }
  }
 
}
 
从上面的代码上,工厂虽然还存在switch分支,但是把更复杂的东西交给了加法类等去完成,而不去关注实现过程。
 

php 工厂模式

标签:

原文地址:http://www.cnblogs.com/varliny/p/4433747.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!