工厂模式可以分为:工厂方法模式和抽象工厂模式。
工厂方法模式:
抽象工厂其实是对工厂方法的一种扩充。产品变产品簇。工厂由一个变多个。本质是一样的。
<?php
abstract class Driver {
abstract public function connect();
}
class MySQL_Driver extends Driver {
public function connect() {
echo 'mysql connect!<br>';
}
}
class DB2_Driver extends Driver {
public function connect() {
echo 'db2 connect!<br>';
}
}
class Oricle_Driver extends Driver {
public function connect() {
echo 'oricle connect!<br>';
}
}
class DriverFactory {
public static function factory($type) {
$classname = $type.'_Driver';
if(class_exists($classname)) {
return new $classname;
} else {
throw new Exception('Driver not found');
}
}
}
$mysql = DriverFactory::factory('MySQL');
$mysql->connect();
?>