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会员权限控制实现原理分析
May 29 PHP
php中的一些数组排序方法分享
Jul 20 PHP
php ctype函数中文翻译和示例
Mar 21 PHP
PHP实现货币换算的方法
Nov 29 PHP
phplot生成图片类用法详解
Jan 06 PHP
php中get_object_vars()方法用法实例
Feb 08 PHP
php中使用url传递数组的方法
Feb 11 PHP
php比较相似字符串的方法
Jun 05 PHP
php生成与读取excel文件
Oct 14 PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 PHP
ThinkPHP3.2框架操作Redis的方法分析
May 05 PHP
laravel 修改.htaccess文件 重定向public的解决方法
Oct 12 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
解析argc argv在php中的应用
2013/06/24 PHP
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
UTF-8正则表达式如何匹配汉字
2015/08/03 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
react 应用多入口配置及实践总结
2018/10/17 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
python用字典统计单词或汉字词个数示例
2014/04/22 Python
python处理PHP数组文本文件实例
2014/09/18 Python
python中bisect模块用法实例
2014/09/25 Python
Python中的闭包详细介绍和实例
2014/11/21 Python
python开发之thread线程基础实例入门
2015/11/11 Python
Python合并多个Excel数据的方法
2018/07/16 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
基于Python打造账号共享浏览器功能
2019/05/30 Python
PyCharm 创建指定版本的 Django(超详图解教程)
2019/06/18 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
Python实现扫码工具的示例代码
2020/10/09 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
使用HTML5和CSS3制作一个模态框的示例
2018/03/07 HTML / CSS
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
环境科学专业大学生自荐信格式
2013/09/21 职场文书
启动仪式策划方案
2014/06/14 职场文书
女生节标语
2014/06/26 职场文书
工作失职检讨书
2015/01/26 职场文书
开工典礼致辞
2015/07/29 职场文书
500字作文之周记
2019/12/13 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python