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 相关文章推荐
介绍几个array库的新函数 php
Dec 29 PHP
Windows 下的 PHP-PEAR 安装方法
Nov 20 PHP
用Simple Excel导出xls实现方法
Dec 06 PHP
php查找任何页面上的所有链接的方法
Dec 03 PHP
使用php批量删除数据库下所有前缀为prefix_的表
Jun 09 PHP
PHP实现单例模式最安全的做法
Jun 13 PHP
php实现zip文件解压操作
Nov 03 PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
Dec 31 PHP
php中序列化与反序列化详解
Feb 13 PHP
php 后端实现JWT认证方法示例
Sep 04 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
Oct 18 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 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 cache类代码(php数据缓存类)
2010/04/15 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
javascript之解决IE下不渲染的bug
2007/06/29 Javascript
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
详解Vue取消eslint语法限制
2018/08/04 Javascript
python将图片文件转换成base64编码的方法
2015/03/14 Python
python实现汉诺塔方法汇总
2016/07/25 Python
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
给Python学习者的文件读写指南(含基础与进阶)
2020/01/29 Python
django创建css文件夹的具体方法
2020/07/31 Python
python 检测图片是否有马赛克
2020/12/01 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
2021/03/03 Python
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
世界上最好的精品店:Shoptiques
2018/02/05 全球购物
院药学专业个人求职信
2013/09/21 职场文书
初中生自我评价
2014/02/01 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
清明扫墓感想
2015/08/11 职场文书
为什么中国式养孩子很累?
2019/08/07 职场文书