美文网首页
php设计模式——适配器模式

php设计模式——适配器模式

作者: 胡木木OvO | 来源:发表于2020-04-22 10:00 被阅读0次

适配器模式

  • 适配器模式(Adapter)模式:将一个类的接口,转换成客户期望的另一个类的接口。适配器让原本接口不兼容的类可以合作无间。列如:将数据库接口封装成一样的接口, 这样就可以适用于不同场景

  • 案例 将php数据操作封装成统一的api

    • 统一接口api
      <?php
      namespace Test;
      
      interface IDatabase
        {
              function connect($host, $user, $passwd, $dbname);
              function query($sql);
              function close();
        }
      
    • mysql 连接
    
    <?php
     namespace Test;
     class MySQL implements IDatabase
    {
              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);
          }
    }
    
  • mysqli 连接

<?php
namespace TEST;
class MySQLi implements IDatabase
{
    protected $conn;

    function connect($host, $user, $passwd, $dbname)
    {
        $conn = mysqli_connect($host, $user, $passwd, $dbname);
        $this->conn = $conn;
    }

    function query($sql)
    {
        return mysqli_query($this->conn, $sql);
    }

    function close()
    {
        mysqli_close($this->conn);
    }
}
  • PDO连接
<?php
namespace Test;
class PDO implements IDatabase
{
    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);
    }
}

相关文章

网友评论

      本文标题:php设计模式——适配器模式

      本文链接:https://www.haomeiwen.com/subject/wyebihtx.html