zoukankan      html  css  js  c++  java
  • PHP设计模式-适配器模式

    适配器模式:将一个类的接口转换成外部希望的另外一个接口,使用原本不兼容的而不能在一起工作的那些类可以在一起工作.适配器就是一个把拥有相似功能但是接口名不同的类封装成拥有同样接口名的类,这样只需要更改接口引入的类,但不需要改变类中的方法,就可以换成另一个相同功能不同类名和方法名.
      如:数据库操作有MySQL,MySQLi,PDO三种
         memcache,redis,file,apc等不同的缓存函数

    步骤:
       1.定义一个接口:规定方法与参数
       2.有几个要实现的类,就写几个类继承该接口

    接口 IDatabase

    <?php
    namespace Test;
    interface IDatabase
    {
        function connect($host, $user, $passwd, $dbname);
        function query($sql);
        function close();
    }

    MySQL类

    <?php
    namespace TestDatabase;
    use TestIDatabase;
    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 TestDatabase;
    use TestIDatabase;
    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);
        }
    }

    这样在之后的调用,只需要使用接口上规定的方法就行,可以在MYSQL和MYSQLi中简单互换,不需要改方法名和参数这些,实现了代码的解耦.

    ————————————————
    版权声明:本文为CSDN博主「root_admin_12138」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/root_admin_12138/article/details/82453642

  • 相关阅读:
    mojo 接口示例
    MojoliciousLite: 实时的web框架 概述
    接口返回json
    centos 6.7 perl 版本 This is perl 5, version 22 安装DBI DBD
    centos 6.7 perl 5.22 安装DBD 需要使用老的perl版本
    商业智能改变汽车行业
    商业智能改变汽车行业
    读MBA经历回顾(上)目的决定手段——北漂18年(48)
    perl 升级到5.20版本
    Group Commit of Binary Log
  • 原文地址:https://www.cnblogs.com/zhangzhijian/p/12305658.html
Copyright © 2011-2022 走看看