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 23 PHP
PHP 自定义错误处理函数的使用详解
May 10 PHP
PHP上传图片进行等比缩放可增加水印功能
Jan 13 PHP
php过滤表单提交的html等危险代码
Nov 03 PHP
php中解析带中文字符的url函数分享
Jan 20 PHP
PHP随机生成唯一HASH值自定义函数
Apr 20 PHP
PHP使用自定义方法实现数组合并示例
Jul 07 PHP
Yii2简单实现给表单添加验证码的方法
Jul 18 PHP
PHPExcel在linux环境下导出报500错误的解决方法
Jan 26 PHP
PHP实现的MD5结合RSA签名算法实例
Oct 07 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
PHP封装XML和JSON格式数据接口操作示例
Mar 06 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
WIN98下Apache1.3.14+PHP4.0.4的安装
2006/10/09 PHP
PHP 显示客户端IP与服务器IP的代码
2010/10/12 PHP
带密匙的php加密解密示例分享
2014/01/29 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
js 页面执行时间计算代码
2009/03/04 Javascript
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
jq选项卡鼠标延迟的插件实例
2013/05/13 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
2013/09/25 Javascript
常用的JS验证和函数汇总
2014/12/23 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
python 运算符 供重载参考
2009/06/11 Python
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
python读写配置文件操作示例
2019/07/03 Python
python线程安全及多进程多线程实现方法详解
2019/09/27 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
同事吵架检讨书
2014/02/05 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
开天辟地观后感
2015/06/09 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书