//User表
class User {
private $id;
private $name;
public function __set($key, $value) {
$this->$key = $value;
}
public function __get($key) {
if(isset($this->$key)) {
return $this->$key;
} else {
return NULL;
}
}
}
//Department表
class Department {
private $id;
private $name;
public function __set($key, $value) {
$this->$key = $value;
}
public function __get($key) {
if(isset($this->$key)) {
return $this->$key;
} else {
return NULL;
}
}
}
//User表操作接口
interface IUser {
function insert($user);
function getUser($id);
}
//SqlServer
class SqlServerUser implements IUser {
public function insert($user) {
echo '在SQL Server中给User表增加一条记录。';
}
public function getUser($id) {
echo '在SQL Server中根据ID得到User表一条记录。';
return null;
}
}
//Access
class AccessUser implements IUser {
public function insert($user) {
echo '在Access中给User表增加一条记录。';
}
public function getUser($id) {
echo '在Access中给User表增加一条记录。';
}
}
//Department表操作
interface IDepartment {
function insert($department);
function getDepartment($id);
}
//SqlServer
class SqlServerDepartment implements IDepartment {
public function Insert($department) {
echo '在SQL Server中给Department表增加一条记录';
}
public function getDepartment($id) {
echo '在SQL Server中根据ID得到Department表一条记录';
}
}
//Access
class AccessDepartment implements IDepartment {
public function insert($department) {
echo '在Access中给Department表增加一条记录';
}
public function getDepartment($id) {
echo '在Access中根据ID得到Department表一条记录';
return null;
}
}
//配置数据库连接方式
define('DB','SqlServer');
//数据库类(代替工厂类)
class DataAccess {
private static $db = DB;
public static function createUser() {
$className = self::$db.'User';
return new $className;
}
public static function createDepartment() {
$className = self::$db.'Department';
return new $className;
}
}
$user = new User();
$dept = new Department();
$iu = DataAccess::createUser();
$iu->insert($user);
$iu->getUser(1);