zoukankan      html  css  js  c++  java
  • 【PHP设计模式 03_JianDanGongChang.php】 简单工厂

    <?php 
    /**
     * 【简单工厂】
     * 之前 02.php 面向接口开发,客户端还是知道了服务器端的所有类。
     * 现在想让客户端只知道一个类,就用工厂。
     */
    
    header("Content-type: text/html; charset=utf-8");
    
    /*共同接口--连接数据库*/
    interface db{
        function conn();
    }
    
    /*服务端开发,面向上面的接口。(不知道将会被谁调用)*/
    class dbmysql implements db{
        public function conn(){
            echo '03-连接上了mysql<br>';
        }
    }
    class dbsqlite implements db{
        public function conn(){
            echo '03-连接上了sqlite<br>';
        }
    }
    
    //定义一个工厂类
    class Factory{
        public static function createDB($type){
            if($type=='mysql'){
                $db = new dbmysql();
            }elseif($type=='sqlite'){
                $db = new dbsqlite();
            }else{
                echo 'Error...';
            }
            return $db->conn();
        }
    }
    
    /* 客户端开发,现在客户端不知道服务端到底有哪些类名。
     * 只知道对方开放了一个 factory::createDB 方法,
     * 并且方法允许传递数据库名称
     */
    Factory::createDB('mysql'); //输出“连接上了mysql”
    Factory::createDB('sqlite'); //输出“连接上了sqlite”
  • 相关阅读:
    js---小火箭回到顶部
    JS小案例--简单时钟
    堆排序以及TopK大顶堆小顶堆求解方式(js版)
    svg-icon
    Vue 点击按钮 触发 input file 选择文件
    图片裁剪放大缩小旋转 Cropper.js
    Cytoscape
    vue d3 force cytoscape
    获取当月多少天
    谷歌打印去页脚
  • 原文地址:https://www.cnblogs.com/rxbook/p/6002967.html
Copyright © 2011-2022 走看看