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/>';
  • 相关阅读:
    SAP GUI中按F1后显示的帮助窗口为空白
    SAP事务代码之IMG设置
    RFC 同步异步调用实例
    SAP R/3 与其他异构系统集成时是否需要应用 SAP XI
    SAP 用户管理事务代码
    SAP 模块中文解释
    SAP Table 类型
    SAP System Tables
    开发SAP的语言
    IDOC 创建,增强,管理,配置
  • 原文地址:https://www.cnblogs.com/tlxma/p/5210665.html
Copyright © 2011-2022 走看看