zoukankan      html  css  js  c++  java
  • php的工厂模式

    特点 :将调用者和创建者分离,调用者直接向工厂类请求获取调用对象,减少代码耦合,提高系统的维护性和扩展性。

    <?php
    // **** 共同接口 **** //
    interface DB {
        function conn();
    }
    
    interface factory {
        function createDB();
    }
    
    // **** 服务端开发 **** //
    class dbMysql implements DB {
        public function conn() {
            echo '连接上了 mysql 数据库!';
        }
    }
    
    class mysqlFactory implements factory {
        public function createDB() {
            return new dbMysql();
        }
    }
    
    class dbSqlite implements DB {
        public function conn() {
            echo '连接上了 sqlite 数据库!';
        }
    }
    
    class sqliteFactory implements factory {
        public function createDB() {
            return new dbSqlite();
        }
    }
    
    // 这是开发中后来增加的 oracle 数据库;
    // 不需要修改上面原来的代码;
    // 这就是程序的开闭原则:修改关闭,增加开放。
    class dbOracle implements DB {
        public function conn() {
            echo '连接上了 oracle 数据库!';
        }
    }
    
    class oracleFactory implements factory {
        public function createDB() {
            return new dbOracle();
        }
    }
    
    // **** 客户端调用 **** //
    $factory = new mysqlFactory();
    $db = $factory->createDB();
    $db->conn();
    
    echo '<br>';
    
    $factory = new sqliteFactory();
    $db = $factory->createDB();
    $db->conn();
    
    echo '<br>';
    // 这是开发中后来增加的 oracle 数据库连接
    $factory = new oracleFactory();
    $db = $factory->createDB();
    $db->conn();
  • 相关阅读:
    当tp5项目上传到服务器之后遇见的各种bug(不定期更新)
    解决LAMP下 服务器IP无法访问
    thinkphp5多图上传+同时删除本地文件
    from提交表单后 数据提交到后台 但不跳转页面 非ajax 用iframe
    window7 安装sass和compass
    开源操作系统课程设计
    Hadoop伪分布式搭建实验总结
    排序集合
    快排
    邻接矩阵
  • 原文地址:https://www.cnblogs.com/qingsong/p/11503370.html
Copyright © 2011-2022 走看看