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入门速成教程
Mar 19 PHP
php adodb介绍
Mar 19 PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
Oct 11 PHP
PHP 简单日历实现代码
Oct 28 PHP
PHP基础学习之流程控制的实现分析
Apr 28 PHP
PHP+jQuery实现自动补全功能源码
May 15 PHP
深入PHP操作MongoDB的技术总结
Jun 02 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
PHP邮件发送类PHPMailer用法实例详解
Sep 22 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
Mar 21 PHP
phpstudy隐藏index.php的方法
Sep 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
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
用ODBC的分页显示
2006/10/09 PHP
快速配置PHPMyAdmin方法
2008/06/05 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
php实现可逆加密的方法
2015/08/11 PHP
PHP中检查isset()和!empty()函数的必要性
2019/02/13 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
javascript中定义私有方法说明(private method)
2014/01/27 Javascript
关于img的href和src取变量及赋值的方法
2014/04/28 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
解决Window10系统下Node安装报错的问题分析
2016/12/13 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
JS使用贪心算法解决找零问题示例
2017/11/27 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
Python生成器定义与简单用法实例分析
2018/04/30 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
python的launcher用法知识点总结
2020/08/07 Python
谈谈python垃圾回收机制
2020/09/27 Python
html5移动端价格输入键盘的实现
2019/09/16 HTML / CSS
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
几个SQL的面试题
2014/03/08 面试题
在职研究生自我鉴定
2013/10/16 职场文书
高校教师思想汇报
2014/01/11 职场文书
创意活动策划书
2014/01/15 职场文书