zoukankan      html  css  js  c++  java
  • PHP设计模式——工厂模式

    <?php
    
    /**
     * 工厂模式
     * 提供获取某个对象的新实例的一个接口,同时使调用代码避免确定实际实例化基类的步骤。
     * 
     * 工厂类用于创建不同类的实例,并将其返回。
     */
    
    /**
     * 服务端开始
     */
    interface DB{
        function conn();
    }
    interface Factory{
        function createDB();
    }
    //
    class MysqlDB implements DB{
        public function conn() {
            echo '连接上Mysql...';
        }
    }
    //
    class SqliteDB implements DB{
        public function conn() {
            echo '连接上Sqlite...';
        }
    }
    //
    class MysqlFactory implements Factory{
        public function createDB() {
            return new MysqlDB();
        }
    }
    //
    class SqliteFactory implements Factory{
        public function createDB() {
            return new SqliteDB();
        }
    }
    /**
     * 客户端开始
     */
    //连接Mysql
    $fact = new MysqlFactory();
    $db = $fact->createDB();
    $db->conn();
    echo '<br/>';
    //连接Sqlite
    $fact = new SqliteFactory();
    $db = $fact->createDB();
    $db->conn();
    echo '<br/>';
    /**
     * 扩展:添加Oracle连接
     */
    class OracleDB implements Db{
        function conn() {
            echo '连接上Oracle....';
        }
    }
    class OracleFactory implements Factory{
        public function createDB() {
            return new OracleDB();
        }
    }
    //连接Oracle
    $fact = new OracleFactory();
    $db = $fact->createDB();
    $db->conn();
    echo '<br/>';
  • 相关阅读:
    字符序列(characts)
    装载问题(load)
    哈密顿路
    犯罪团伙
    回溯算法
    维修机器人
    旅行计划
    皇后游戏
    运输
    亲身实测可用的java实现wordxlsxpdf文件下载功能
  • 原文地址:https://www.cnblogs.com/tlxma/p/5210665.html
Copyright © 2011-2022 走看看