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 相关文章推荐
apache+mysql+php+ssl服务器之完全安装攻略
Sep 05 PHP
PHP 高手之路(二)
Oct 09 PHP
PHP4在Windows2000下的安装
Oct 09 PHP
php 提速工具eAccelerator 配置参数详解
May 16 PHP
PHP 查找字符串常用函数介绍
Jun 07 PHP
thinkPHP的Html模板标签使用方法
Nov 13 PHP
浅析PHP的ASCII码转换类
Jul 05 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
PHP封装分页函数实现文本分页和数字分页
Oct 23 PHP
PHP实现的简单日历类
Nov 29 PHP
php实现的操作excel类详解
Jan 15 PHP
php制作基于xml的RSS订阅源功能示例
Feb 08 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页面编码的两种方法示例介绍
2014/03/03 PHP
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
javascript框架设计读书笔记之数组的扩展与修复
2014/12/02 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
onmouseover事件和onmouseout事件全面理解
2016/08/15 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
详解vue-router基本使用
2017/04/18 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
微信小程序实现顶部导航特效
2019/01/28 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
JS实现“全选”和&quot;全不选&quot;功能代码实例
2020/02/06 Javascript
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python局部赋值的规则
2013/03/07 Python
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
Django卸载之后重新安装的方法
2017/03/15 Python
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
python如何快速拼接字符串
2020/10/28 Python
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
linux面试相关问题
2013/04/28 面试题
幼师自荐信
2013/10/26 职场文书
连锁酒店店长职责范本
2014/02/13 职场文书
模特职业生涯规划范文
2014/02/26 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
通知的写法
2015/04/23 职场文书
太行山上观后感
2015/06/05 职场文书
python使用shell脚本创建kafka连接器
2022/04/29 Python
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers