php设计模式之工厂模式用法经典实例分析


Posted in PHP onSeptember 20, 2019

本文实例讲述了php设计模式之工厂模式用法。分享给大家供大家参考,具体如下:

<?php
/***
 * @desc 工厂模式
 * ***/
interface DB{
  /*
   * @desc 接口类不体现具体实现,只是为了规范一套规则
   * **/
  public function conn();  
  public function add();
  public function delete();
  public function update();
  public function select();
  public function getLastSql();
}
/**
 * @desc 创建mysqlDb类
 * 接口是用来被实现的,并且每一个方法都必须要被实现
 * **/
class mysqlDb implements DB{
  public function conn(){
    echo "恭喜您,mysql数据库连接成功";
  }
  public function add(){
  }
  public function delete(){
  }
  public function update(){
  }
  public function select(){
  }
  public function getLastSql(){
  }
}
/**
 * @desc 创建sqlServerDb 类
 * **/
class sqlServerDb implements DB{
  public function conn(){
    echo "恭喜您,sqlServer数据库连接成功";
  }
  public function add(){
  }
  public function delete(){
  }
  public function update(){
  }
  public function select(){
  }
  public function getLastSql(){
  }
}
/**
 * @desc 创建一个数据库工程类,用来生产对象
 * **/
class DbFactory{
  static $db = null;
  public static function getDb($type){
    switch($type){
      case 'mysql':
        self::$db = new mysqlDb();
        break;
      case 'sqlServer':
        self::$db = new sqlServerDb();
        break;  
    }
    return self::$db;
  }
}
//测试使用mysql来连接数据库测试工程模式是否成功
$factory = new DbFactory();
$db = $factory->getDb('mysql');
$db->conn();

测试结果输出:

恭喜您,mysql数据库连接成功

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php利用cookie实现访问次数统计代码
May 19 PHP
php array_filter除去数组中的空字符元素
Jun 21 PHP
基于PHP输出缓存(output_buffering)的深入理解
Jun 13 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
Aug 22 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 PHP
PHP永久登录、记住我功能实现方法和安全做法
Apr 27 PHP
thinkPHP模型初始化实例分析
Dec 03 PHP
PHP编程获取各个时间段具体时间的方法
May 26 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
PHP上传文件及图片到七牛的方法
Jul 25 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 PHP
php设计模式之单例模式用法经典示例分析
Sep 20 #PHP
php数组和链表的区别总结
Sep 20 #PHP
php输出反斜杠的实例方法
Sep 19 #PHP
php实现session共享的实例方法
Sep 19 #PHP
php进行md5加密简单实例方法
Sep 19 #PHP
php解决安全问题的方法实例
Sep 19 #PHP
PHP中16个高危函数整理
Sep 19 #PHP
You might like
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
PHP基于单例模式实现的mysql类
2016/01/09 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
javascript 主动派发事件总结
2011/08/09 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
js使用递归解析xml
2014/12/12 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
jQuery DOM删除节点操作指南
2015/03/03 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
微信小程序学习总结(四)事件与冒泡实例分析
2020/06/04 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
Python 除法小技巧
2008/09/06 Python
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
python与php实现分割文件代码
2017/03/06 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
火箭队口号
2014/06/18 职场文书