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 相关文章推荐
php5中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
PHP生成唯一ID之SnowFlake算法
Dec 17 PHP
PHP实现留言板功能的详细代码
Mar 25 PHP
ThinkPHP框架实现数据增删改
May 07 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
PHP实现的ID混淆算法类与用法示例
Aug 10 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
Apr 02 PHP
YII框架模块化处理操作示例
Apr 26 PHP
PHP中有关长整数的一些操作教程
Sep 11 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
Dec 03 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
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
PHP 采集程序原理分析篇
2010/03/05 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
php图像验证码生成代码
2017/06/08 PHP
laravel model 两表联查示例
2019/10/24 PHP
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
js实现音频控制进度条功能
2017/04/01 Javascript
jQuery代码优化方法总结
2018/01/29 jQuery
解析vue、angular深度作用选择器
2019/09/11 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
javascript代码实现简易计算器
2021/01/25 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
Python系统监控模块psutil功能与经典用法分析
2018/05/24 Python
Python3中的bytes和str类型详解
2019/05/02 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
python 实现字符串下标的输出功能
2020/02/13 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
日期和时间问题
2015/01/04 面试题
学校采购员岗位职责
2014/01/02 职场文书
决定成败的关键——创业计划书
2014/01/24 职场文书
党员岗位承诺口号大全
2014/03/28 职场文书
计划生育汇报材料
2014/12/26 职场文书
员工离职通知函
2015/04/25 职场文书
环保证明
2015/06/23 职场文书
HTML基础详解(上)
2021/10/16 HTML / CSS