简单工厂模式把创建对象的过程进行了封装,体现了PHP的面向对象,隔离封装的特点,这样就使客户端无论怎么调用,他都是只知道接口,但是并不清楚后端接口内部程序的具体实现,省去了客户端创建对象的过程,使分工更加明确,统一接口不同类型的产品,正因为这样,可能不利于以后的维护,举个栗子:
<?php
interface DB
{
function conn();
}
class MySql implements DB
{
public function conn()
{
echo 'mysql数据库连接了';
}
}
class SQLServer implements DB
{
public function conn()
{
echo 'SqlServer已经连接了';
}
}
class Factory
{
public static function createDB($sqlType)
{
if($sqlType == 'mysql')
{
return new MySql();
}elseif($sqlType == 'SQLServer')
{
return new SQLServer();
}else{
return null;
}
}
}
$sqlServer = Factory::createDB('SQLServer');
$sqlServer->conn();