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下通过POST还是GET来传值
Jun 05 PHP
使用PHP求两个文件的相对路径
Jun 20 PHP
PHP 输出URL的快捷方式示例代码
Sep 22 PHP
DOM XPATH获取img src值的query
Sep 23 PHP
codeigniter数据库操作函数汇总
Jun 12 PHP
一个经典的PHP验证码类分享
Nov 18 PHP
PHP打开和关闭文件操作函数总结
Nov 18 PHP
WordPress中缩略图的使用以及相关技巧
Nov 24 PHP
PHP微信支付实例解析
Jul 22 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
Sep 29 PHP
PHP简单实现防止SQL注入的方法
Mar 13 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
Jun 01 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 json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
2016/10/22 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
flexigrid 参数说明
2010/11/23 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
实例讲解React 组件生命周期
2020/07/08 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
Python中的lstrip()方法使用简介
2015/05/19 Python
python 编码规范整理
2018/05/05 Python
python实现n个数中选出m个数的方法
2018/11/13 Python
python实现年会抽奖程序
2019/01/22 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
Django后端分离 使用element-ui文件上传方式
2020/07/12 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
相亲大会策划方案
2014/06/05 职场文书
横幅标语大全
2014/06/17 职场文书
网站出售协议书范文
2014/10/10 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
环境卫生整治简报
2015/07/20 职场文书
python unittest单元测试的步骤分析
2021/08/02 Python