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多线程批量采集下载美女图片的实现代码(续)
Jun 03 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
Jun 23 PHP
浅析php中抽象类和接口的概念以及区别
Jun 27 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
Sep 22 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
php sybase_fetch_array使用方法
Apr 15 PHP
54个提高PHP程序运行效率的方法
Jul 19 PHP
php通过文件头判断格式的方法
May 28 PHP
tp5实现微信小程序多图片上传到服务器功能
Jul 16 PHP
Yii2压缩PHP中模板代码的输出问题
Aug 28 PHP
php 中htmlentities导致中文无法查询问题
Sep 10 PHP
PHP工厂模式的日常使用
Mar 20 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
一个简单的域名注册情况查询程序
2006/10/09 PHP
PHP 实现explort() 功能的详解
2013/06/20 PHP
10 个经典PHP函数
2013/10/17 PHP
php中引用符号(&amp;)的使用详解
2013/11/13 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
JavaScript实现网页截图功能
2014/10/16 Javascript
AngularJS HTML编译器介绍
2014/12/06 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
javascript实现动态标签云
2015/10/16 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
很棒的js Tab选项卡切换效果
2016/08/30 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
Vue利用History记录上一页面的数据方法实例
2018/11/02 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
JS如何生成动态列表
2020/09/22 Javascript
python连接远程ftp服务器并列出目录下文件的方法
2015/04/01 Python
深入理解NumPy简明教程---数组1
2016/12/17 Python
python中利用h5py模块读取h5文件中的主键方法
2018/06/05 Python
对python 命令的-u参数详解
2018/12/03 Python
对python的输出和输出格式详解
2018/12/08 Python
Python求离散序列导数的示例
2019/07/10 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
html5触摸事件判断滑动方向的实现
2018/06/05 HTML / CSS
财务会计专业毕业生自荐信
2013/10/02 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
浅谈python中的多态
2021/06/15 Python
Python加密技术之RSA加密解密的实现
2022/04/08 Python