工厂模式

<?php
//工厂模式;
header("content-type:text/html;charset=utf-8");
//抽象类用来定义方法名;
abstract   class  Product{
	abstract  public  function  getName();
}

//商品类;
class  ProductA   extends   Product{
	 public   function   getName(){
	 	 echo   "这是a商品";
	 }
}

class  ProductB   extends   Product{
	 public   function  getName(){
	 	 echo   "这是b商品";
	 }
}



//工厂类
class   Factory{
  //传递不同的参数,获取不同的对象;
  public   static  function   create($num){
           switch($num){
           	   case  1:
           	   return  new  ProductA;
           	   case  2:
           	   return  new  ProductB;
           	   Default:
           	   return  null;
           }
     }

}
//测试
$objA=Factory::create(1);//传递不同的参数获取不同的对象;
$objB=Factory::create(2);
var_dump($objA->getName(),$objB->getName());

  

posted @ 2018-07-03 23:27  王芬老师  阅读(109)  评论(0编辑  收藏  举报