适配器模式
-
一句话, 定义一个接口对问题抽象概括, 接口里面各自处理并实现这个概念, 最后提供统一的调用api供调用。
-
demo : 使用适配器模式结合工厂方法,实现不用new, 通过配置文件直接进行sql 查询。
<?php
// 将截然不同的接口封装成同意的API
// 例如,
// DB: mysql,sqlite, oracle, pdo ...
// cache: memcache, redis ...
// file: pdf, txt, md, xls, xml ...
Interface DB {
public function connect($conf);
public function query($sql);
public function closeConnect();
}
class MYSQL implements DB{
private $conn;
public function connect($conf){
// ... connect db
$conn = 'connected DB connection';
$this->conn = $conn;
}
public function query($sql){
$res = queryDatabase($sql ,$this->conn)
return $res;
}
public function closeConnect(){
closeTheConn($this->conn);
}
}
class SQLITE implements DB{
private $conn;
public function connect($conf){
$conn = 'connnection resource';
$this->conn = $conn;
}
public function query($sql){
$res = queryDatabase($sql, $this->conn);
return $res;
}
public function closeConnect()
{
closeTheConn($this->conn);
}
}
class ORACLE implements DB{
private $conn;
public function connect($conf){
$conn = 'connnection resource';
$this->conn = $conn;
}
public function query($sql){
$res = queryDatabase($sql, $this->conn);
return $res;
}
public function closeConnect()
{
closeTheConn($this->conn);
}
}
// ------------------
// $db = new ORACLE();
// $db->connect($conf);
// $result = $db->query("select * from users where id < 6");
// $db->closeConnet();