天下第七

二也是一种生活态度
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

PHP面向接口编程

Posted on 2011-09-12 10:24  天下第七  阅读(1604)  评论(0)    收藏  举报

面向接口编程用于实现多态性,便于提高软件灵活性和可维护性。

<?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);
?>