PHP 适配器模式 与 接口

2019-02-15  本文已影响0人  wyc0859

接口

什么时候用接口?

1、定规范,保持统一性;
2、多个平级的类需要去实现同样的方法,只是实现方式不一样

接口规范

适配器模式

适配器模式,将截然不同的函数接口封装成统一的API
如数据库操作有3种:mysql mysqli pdo,可以用适配器统一成一致

<?php
//定义接口,
interface Itface{
    function connect($host, $user, $passwd, $dbname);
    function query($sql);
    function close();
}

//创建类并继承接口
class Pdos implements Itface{
    protected $conn;
    function connect($host, $user, $passwd, $dbname)    {
        $conn = new \PDO("mysql:host=$host;dbname=$dbname", $user, $passwd);
        $this->conn = $conn;
    }
    function query($sql)    {
        return $this->conn->query($sql);
    }
    function close()    {
        unset($this->conn);
    }
}

class MySQL implements Itface{
    protected $conn;
    function connect($host, $user, $passwd, $dbname)    {
        $conn = mysql_connect($host, $user, $passwd);
        mysql_select_db($dbname, $conn);
        $this->conn = $conn;
    }
    function query($sql)    {
        $res = mysql_query($sql, $this->conn);
        return $res;
    }
    function close()    {
        mysql_close($this->conn);
    }
}

$db = new Pdos();  //在这里轻松切换PDO和MySQL,下面的代码不变仍能达到一致的结果
$db -> connect('127.0.0.1','root','123456','tp2'); 
$arr=$db->query('select * from ');
$db->close();
$res=$arr->fetch_assoc();
var_dump($res);

3种链接方式的demo

上一篇 下一篇

猜你喜欢

热点阅读