一、白话解释一下
所谓工厂就是为不同客户生产不同的玩意,那么程序里面的工厂有着异曲同工之妙,例如你要new 车相关的类 ,是不是每种车要自己去new? 现在我换种做法,我们把new的过程交给工厂去干,我只要告诉你类型,你就给我new什么。
二、看看最简单的工厂demo
- 用工厂之前
class Car
{
}
class Bike
{
}
class Bus
{
}
$catObj = new Car();
$bikeObj = new Bike();
$catObj = new Bus();
- 用工厂之后
class Factory{
public static function createCarInstance($type)
{
if($type=='car'){
return new Car();
}elseif($type=='bike'){
return new Bike();
}elseif($type=='bus'){
return new Bus();
}else{
return null;
}
}
}
Factory::createCarInstance('car');
Factory::createCarInstance('bike');
Factory::createCarInstance('bus');
三、叨叨一下
所述完全根据自己的理解白话化,肯定有欠妥之处,欢迎来人朋友指正。