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代码简化
Feb 08 PHP
ajax实现无刷新分页(php)
Jul 18 PHP
PHP求最大子序列和的算法实现
Jun 24 PHP
XAMPP安装与使用方法详细解析
Nov 27 PHP
php实现压缩多个CSS与JS文件的方法
Nov 11 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
smarty模板引擎基础知识入门
Mar 30 PHP
PHPCMS V9 添加二级导航的思路详解
Oct 20 PHP
php实现文件与16进制相互转换的方法示例
Feb 16 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
PHP实现负载均衡session共享redis缓存操作示例
Aug 22 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 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
2006/12/14 PHP
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
PHP新手入门学习方法
2011/05/08 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
JavaScript中的事件处理
2008/01/16 Javascript
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
JavaScript日期时间格式化函数分享
2014/05/05 Javascript
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
js对象继承之原型链继承实例
2015/01/10 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
BootStrap3使用错误记录及解决办法
2016/12/22 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
集合Bootstrap自定义confirm提示效果
2017/09/19 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
python调用fortran模块
2016/04/08 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
2020/03/26 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
python 判断一组数据是否符合正态分布
2020/09/23 Python
python实现磁盘日志清理的示例
2020/11/05 Python
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
个人找工作求职简历的自我评价
2013/10/20 职场文书
商务日语专业毕业生求职信
2013/10/26 职场文书
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
学校四风问题对照检查材料思想汇报
2014/09/26 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle