復制代碼 代碼如下:
 
<?php 
/** 
* 工廠方法模式 
* 
* 定義一個用于創建對象的接口,讓子類決定將哪一個類實例化,使用一個類的實例化延遲到其子類 
*/ 
/* 
class DBFactory 
{ 
public static function create($type) 
{ 
swtich($type) 
{ 
case "Mysql": 
return new MysqlDB(); break; 
case "Postgre": 
return new PostgreDB(); break; 
case "Mssql": 
return new MssqlDB(); break; 
} 
} 
} 
*/ 
class DBFactory 
{ 
public static function create($type) 
{ 
$class = $type."DB"; 
return new $class; 
} 
} 
interface DB 
{ 
public function connect(); 
public function exec(); 
} 
class MysqlDB implements DB 
{ 
public function __construct() { 
echo "mysql db<br/>"; 
} 
public function connect() { 
} 
public function exec() { 
} 
} 
class PostgreDB implements DB 
{ 
public function __construct() { 
echo "Postgre db<br/>"; 
} 
public function connect() { 
} 
public function exec() { 
} 
} 
class MssqlDB implements DB 
{ 
public function __construct() { 
echo "mssql db<br/>"; 
} 
public function connect() { 
} 
public function exec() { 
} 
} 
$oMysql = DBFactory::create("Mysql"); 
$oPostgre = DBFactory::create("Postgre"); 
$oMssql = DBFactory::create("Mssql"); 
新聞熱點
疑難解答