什么是工厂模式?
在生活中工厂,让人联想到生产,玩具工厂生产玩具。衣服工厂生产衣服。
在计算机中工厂模式则是生产对象。怎么生产呢?工厂类调用自身静态方法来生产对象实例。
工厂模式的设计原则
工厂类一般带有Factory的命令,工厂类的静态方法(既调用的方法)还可以接受任意数据的参数,必须返回一个对象。
简单的代码案例
/**
* 产品说明书接口
* Interface Instructions
*/
interface Instructions {
public function about();
}
class bus implements Instructions {
public function about()
{
echo "大巴可以載很多人。可以当班车。";
}
}
class car implements Instructions{
public function about()
{
echo "轿车跑的快。能做私家车";
}
}
class Truck implements Instructions {
public function about()
{
echo "货车费油、能載物品。工程用车";
}
}
/**
* 交通工具的工厂
* Class VehicleFactory
*/
class VehicleFactory
{
public static final function makeObj($name)
{
switch($name)
{
case "bus":
return new bus();
case "car":
return new car();
case "Truck":
return new Truck();
}
}
}
VehicleFactory::makeObj('bus')->about();