php设计模式 Factory(工厂模式)


Posted in PHP onJune 26, 2011
<?php 
/** 
* 工厂方法模式 
* 
* 定义一个用于创建对象的接口,让子类决定将哪一个类实例化,使用一个类的实例化延迟到其子类 
*/ /* 
class DBFactory 
{ 
public static function create($type) 
{ 
swtich($type) 
{ 
case "Mysql": 
return new MysqlDB(); break; 
case "Postgre": 
return new PostgreDB(); break; 
case "Mssql": 
return new MssqlDB(); break; 
} 
} 
} 
*/ 
class DBFactory 
{ 
public static function create($type) 
{ 
$class = $type."DB"; 
return new $class; 
} 
} 
interface DB 
{ 
public function connect(); 
public function exec(); 
} 
class MysqlDB implements DB 
{ 
public function __construct() { 
echo "mysql db<br/>"; 
} 
public function connect() { 
} 
public function exec() { 
} 
} 
class PostgreDB implements DB 
{ 
public function __construct() { 
echo "Postgre db<br/>"; 
} 
public function connect() { 
} 
public function exec() { 
} 
} 
class MssqlDB implements DB 
{ 
public function __construct() { 
echo "mssql db<br/>"; 
} 
public function connect() { 
} 
public function exec() { 
} 
} 
$oMysql = DBFactory::create("Mysql"); 
$oPostgre = DBFactory::create("Postgre"); 
$oMssql = DBFactory::create("Mssql");
PHP 相关文章推荐
php面向对象全攻略 (十六) 对象的串行化
Sep 30 PHP
php实现MD5加密16位(不要默认的32位)
Aug 12 PHP
php中的PHP_EOL换行符详细解析
Oct 26 PHP
PHP版QQ互联OAuth示例代码分享
Jul 05 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
Oct 13 PHP
php版微信公众号接口实现发红包的方法
Oct 14 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
Feb 15 PHP
PHP强制转化的形式整理
May 22 PHP
goto语法在PHP中的使用教程
Sep 17 PHP
php设计模式 Interpreter(解释器模式)
Jun 26 #PHP
php设计模式 Strategy(策略模式)
Jun 26 #PHP
php设计模式 Observer(观察者模式)
Jun 26 #PHP
php设计模式 Singleton(单例模式)
Jun 26 #PHP
php设计模式 Command(命令模式)
Jun 26 #PHP
php设计模式 Template (模板模式)
Jun 26 #PHP
php设计模式 Proxy (代理模式)
Jun 26 #PHP
You might like
用函数读出数据表内容放入二维数组
2006/10/09 PHP
一个简单的PHP&amp;MYSQL留言板源码
2020/07/19 PHP
PHP中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
php面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
php生成无限栏目树
2017/03/16 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
js打开新窗口方法整理
2014/02/17 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
2017/06/13 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
JS匿名函数和匿名自执行函数概念与用法分析
2018/03/16 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
js实现烟花特效
2020/03/02 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
python连接字符串的方法小结
2015/07/13 Python
python 网络爬虫初级实现代码
2016/02/27 Python
python日志记录模块实例及改进
2017/02/12 Python
windows下python连接oracle数据库
2017/06/07 Python
python保存文件方法小结
2018/07/27 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
意大利一家专营包包和配饰的网上商店:Borse Last Minute
2019/08/26 全球购物
请解释流与文件有什么不同
2016/07/29 面试题
单位领导证婚词
2014/01/14 职场文书
班组建设经验交流材料
2014/05/12 职场文书
授权委托书格式
2014/07/31 职场文书
证劵公司反洗钱宣传活动总结
2015/05/08 职场文书