1.何为工厂模式?
工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。字面理解一下工厂,有人肯定想是生产产品的地方吗,对!工厂模式生产出来的是一个实例对象。通过什么设备生产?通过一个工厂类生产。怎么生产呢?工厂类调用自身静态方法来生产对象实例。
2.工厂模式有一个关键的构造,根据一般原则命名为Factory的静态方法,然而这只是一种原则,虽然工厂方法可以任意命名这个静态还可以接受任意数据的参数,必须返回一个对象。
3.为什么要用工厂模式?
考虑一下,我要连接数据库,在php里面就有好几种方法,mysql扩展,mysqli扩展,PDO扩展。我就是想要一个对象用来以后的操作,具体要哪个,视情况而定。既然你们都是连接数据库的操作,你们就应该拥有相同的功能,连接,查询,断开等等。这就利用工厂模式。
<?php
interface Transport{
public function connect();
}
class Mysql implements Transport{
public function connect(){
echo "使用了mysql";
}
}
class Mysqli implements Transport{
public function connect(){
echo "使用了mysqli";
}
}
class Pdo implements Transport{
public function connect(){
echo "使用了pdo";
}
}
class transFactory{
public static function factory($transport)
{
switch ($transport) {
case 'mysql':
return new Mysql();
break;
case 'mysqli':
return new Mysqli();
break;
case 'pdo':
return new Pdo();
break;
}
}
}
$transport=transFactory::factory('mysql');
$transport->connect();
网友评论