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项目打包方法
Feb 18 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
Jan 06 PHP
探讨PHP中this,self,parent的区别详解
Jun 08 PHP
Window下PHP三种运行方式图文详解
Jun 11 PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 PHP
PHP中使用break跳出多重循环代码实例
Jan 21 PHP
php array_udiff_assoc 计算两个数组的差集实例
Nov 12 PHP
轻松实现php文件上传功能
Feb 17 PHP
Yii2表单事件之Ajax提交实现方法
May 04 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 PHP
PHP中SESSION过期设置
Mar 09 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/js获取客户端mac地址的实现代码
2013/07/08 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
统计jQuery中各字符串出现次数的工具
2012/05/03 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
[01:38]2018DOTA2亚洲邀请赛主赛事第二日现场采访 神秘商人痛陈生计不易
2018/04/05 DOTA
python抓取网页中图片并保存到本地
2015/12/01 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
django-初始配置(纯手写)详解
2019/07/30 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
英国电信商店:BT Shop
2019/12/17 全球购物
C#如何进行LDAP用户校验
2012/11/21 面试题
信息管理专业推荐信
2013/10/29 职场文书
大学系主任推荐信范文
2013/12/24 职场文书
酒店总经理欢迎词
2014/01/15 职场文书
城管综合整治方案
2014/05/01 职场文书
党的群众路线对照检查材料
2014/09/22 职场文书
党员查摆剖析材料
2014/10/10 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python
详解NodeJS模块化
2021/06/15 NodeJs
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL