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生成便于打印的网页
Oct 09 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
调试一段PHP程序时遇到的三个问题
Jan 17 PHP
PHP number_format() 函数定义和用法
Jun 01 PHP
PHP对象递归引用造成内存泄漏分析
Aug 28 PHP
一个经典的PHP文件上传类分享
Nov 18 PHP
Smarty环境配置与使用入门教程
May 11 PHP
php 根据自增id创建唯一编号类
Apr 06 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
Sep 01 PHP
php实现登录页面的简单实例
Sep 29 PHP
Laravel框架自定义分页样式操作示例
Jan 26 PHP
PHP7生产环境队列Beanstalkd用法详解
May 19 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中die(),exit(),return的区别
2013/06/20 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
2013/07/05 PHP
php筛选不存在的图片资源
2015/04/28 PHP
php自定义hash函数实例
2015/05/05 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
jQuery 1.5最新版本的改进细节分析
2011/01/19 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
2019/06/03 Javascript
详解python数据结构和算法
2019/04/18 Python
Django实现将views.py中的数据传递到前端html页面,并展示
2020/03/16 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
Nº21官方在线商店:numeroventuno.com
2019/09/26 全球购物
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
信息工程学院毕业生推荐信
2013/11/05 职场文书
经典演讲稿范文
2013/12/30 职场文书
企业安全生产标语
2014/06/06 职场文书
匿名信格式范文
2015/05/27 职场文书
张思德观后感
2015/06/09 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python