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 PDO函数库详解
Apr 27 PHP
php中获取关键词及所属来源搜索引擎名称的代码
Feb 15 PHP
php中转义mysql语句的实现代码
Jun 24 PHP
PHP常用的文件操作函数经典收藏
Apr 02 PHP
PHP session_start()问题解疑(详细介绍)
Jul 05 PHP
ThinkPHP3.1新特性之字段合法性检测详解
Jun 19 PHP
PHP实现生成唯一会员卡号
Aug 24 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
Dec 29 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
Sep 22 PHP
curl 出现错误的调试方法(必看)
Feb 13 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
php语言注释,单行注释和多行注释
Jan 21 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
我用php+mysql写的留言本
2006/10/09 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
php中字符串和正则表达式详解
2014/10/23 PHP
PHP解析目录路径的3个函数总结
2014/11/18 PHP
php页面缓存方法小结
2015/01/10 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
不错的一个日期输入 动态
2006/11/06 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
2017/04/24 Javascript
vee-validate vue 2.0自定义表单验证的实例
2018/08/28 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
入党自我评价优缺点
2014/01/25 职场文书
函授本科个人自我鉴定
2014/03/25 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
公文写作指导之倡议书!
2019/07/03 职场文书
餐厅开业活动方案
2019/07/08 职场文书
MySQL令人大跌眼镜的隐式转换
2021/08/23 MySQL
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技