面向接口编程用于实现多态性,便于提高软件灵活性和可维护性。
<?php
/**
*定义接口
*/
interface IDB{
public function connect($host,$port,$user,$password,$db,$charset='GBK');
public function getUserInfo($id);
public function postNewFeed($feed);
}
/**
*mysql实现
*/
class MySQL implements IDB{
public function connect(){}
public function getUserInfo($id){}
public function postNewFeed($feed){}
}
/**
*plsql实现
*/
class PLSQL implements IDB{
public function connect(){}
public function getUserInfo($id){}
public function postNewFeed($feed){}
}
/**
*工厂方法
*/
class DBFactory(){
private $static $db = array();
public function getInstance($type){
switch (strtolower($type)){
case 'mysql':
if(!isset(self::$db['mysql']))
self::$db['mysql'] = new MySQL();
case 'plsql':
if(!isset(self::$db['plsql']))
self::$db['plsql'] = new PLSQL();
default:
throw new Exception('You must assign the db type!');
}
}
}
$db = DBFactory::getInstance('mysql');
$user_info = $db->getUserInfo($uid);
?>
浙公网安备 33010602011771号