zoukankan      html  css  js  c++  java
  • 设计模式:二

    php面向对象设计模式中,工厂模式,从字面中就能够以理解为,工厂模式就是在不改变原来代码的结构的基础上,依据需求的添加类定义去完毕

    <?

    php header("Content-Type:text/html; charset=utf8"); /** * php设计模式 * 二:工厂模式 * */ // 定义接口DB类 interface DB{ function conn(); } class dbmysql implements DB{ public function conn(){ echo 'mysql连接成功<br />'; } } class dbSqlServer implements Db{ public function conn(){ echo 'Sqlserver连接成功'; } } // 定义一个工厂接口 interface Factory{ function createDB(); } //定义创建数据接口 class GetMysqlFactory implements Factory{ public function createDB(){ return new dbmysql(); } } class GetSqlServer implements Factory{ public function createDB(){ return new dbSqlServer(); } } $facMysql = new GetMysqlFactory(); // 获得创建mysql的工厂类 $mysql = $facMysql->createDB(); // 通过mysql工厂对象创建一个mysql对象 $mysql->conn(); //mysql连接成功 $facMysql = new GetSqlServer(); // 获得sqlServer工厂类 $mysql = $facMysql->createDB();// 通过Sqlserver工厂对象创建一个sqlServer对象 $mysql->conn(); //sqlServer连接成功


    定义了两个接口类, 事实上定义接口类的主要作用, 能够起到约束作用,更规范 .

    由于php是类型自己主动转换的。

    实现上使用接口能够约束类的定义。从而实现一致的訪问.

    从上述代码能够看出, 在不改变原来代码结构的基础上, 能够加入多个数据库连接

    比方要添加一个oracle数据库连接,仅仅须要再添加在添加类的基础上就完毕

    class dbOracle implements DB{
        function conn(){
            echo '<hr />连接oracle成功';
        }
    }
    
    class getOracle implements Factory{
        public  function createDB(){
            return new dbOracle;
        }
    }
    
    $facOracle = new getOracle();
    $facOracle = $facOracle->createDB();
    $facOracle->conn(); // 连接Orache成功
  • 相关阅读:
    互斥锁的通俗理解
    U-Boot下分区信息查看
    《计算机组成原理》唐朔飞第二版_笔记
    《大话程序员》安晓辉_笔记
    C++ 类对象的初始化顺序
    FilterTerminal使用说明全总结
    sed -i 命令常用方法总结
    入园记录
    cookies,sessionStorage 和 localStorage区别
    优雅降级和渐进增强的理解:
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5237555.html
Copyright © 2011-2022 走看看