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

    概念

          将不同函数的接口封装成统一的api,每个类必须要实现接口中的方法,eg:操作mysql数据库有mysql,PDO,MySQLi三种,可以将三种分装成统一的接口,再例如cache适配器,将memeche ,redis ,file,apc等不同的缓存函数分装成统一的接口。

    实现

    先定义一个接口,让每一类都实现这一个接口

    //定义接口
    interface  Adapter
    {
        public function connect();
    
        public function close();
    
        public function query();
        //还以定义很多,也就是增删改查
    }

    定义mysqli操作数据库类,实现Adapter接口

    class MyMysqli implements Adapter
    {
        protected $connect;
    
        public function connect()
        {
            // TODO: Implement connect() method.
            $this->connect = mysqli_connect('127.0.0.1', 'root', '');
            mysqli_select_db($this->connect, 'mysql');
            return $this->connect;
        }
    
        public function query()
        {
            // TODO: Implement query() method.
            return mysqli_query($this->connect, 'show tables');
        }
    
        public function close()
        {
            // TODO: Implement close() method.
            mysqli_close($this->connect);
        }
    }

    定义PDO操作数据库,实现Adapter接口

    class MyPDO implements Adapter
    {
        protected $connect;
    
        public function connect()
        {
            // TODO: Implement connect() method.
            $this->connect = new PDO('mysql:dbname=test;host=127.0.0.1', 'root', '');
        }
    
        public function query()
        {
            // TODO: Implement query() method.
            return $this->connect->query("show tables");
        }
    
        public function close()
        {
            // TODO: Implement close() method.
            unset($this->connect);
        }
    }

    在要操作数据库的地方直接调用

    $pdo = new MyMysqli();
    $pdo->connect();
    $pdo->query();

    写了怎么就感觉是实现相同的接口呢。有点纳闷。

    视频连接免费:http://www.imooc.com/learn/236

  • 相关阅读:
    SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因
    微软BI 之SSIS 系列
    微软BI 之SSIS 系列
    微软BI 之SSIS 系列
    微软BI 之SSIS 系列
    微软BI 之SSIS 系列
    微软BI 之SSAS 系列
    微软BI 之SSRS 系列
    微软BI 之SSRS 系列
    配置 SQL Server Email 发送以及 Job 的 Notification通知功能
  • 原文地址:https://www.cnblogs.com/webph/p/6745285.html
Copyright © 2011-2022 走看看