php设计模式 Delegation(委托模式)


Posted in PHP onJune 26, 2011
<?php 
/** 
* 委托模式 示例 
* 
* @create_date: 2010-01-04 
*/ 
class PlayList 
{ 
var $_songs = array(); 
var $_object = null; 
function PlayList($type) 
{ 
$object = $type."PlayListDelegation"; 
$this->_object = new $object(); 
} 
function addSong($location,$title) 
{ 
$this->_songs[] = array("location"=>$location,"title"=>$title); 
} 
function getPlayList() 
{ 
return $this->_object->getPlayList($this->_songs); 
} 
} 
class mp3PlayListDelegation 
{ 
function getPlayList($songs) 
{ 
$aResult = array(); 
foreach($songs as $key=>$item) 
{ 
$path = pathinfo($item['location']); 
if(strtolower($item['extension']) == "mp3") 
{ 
$aResult[] = $item; 
} 
} 
return $aResult; 
} 
} 
class rmvbPlayListDelegation 
{ 
function getPlayList($songs) 
{ 
$aResult = array(); 
foreach($songs as $key=>$item) 
{ 
$path = pathinfo($item['location']); 
if(strtolower($item['extension']) == "rmvb") 
{ 
$aResult[] = $item; 
} 
} 
return $aResult; 
} 
} 
$oMP3PlayList = new PlayList("mp3"); 
$oMP3PlayList->getPlayList(); 
$oRMVBPlayList = new PlayList("rmvb"); 
$oRMVBPlayList->getPlayList(); 
?>
PHP 相关文章推荐
在PHP中使用灵巧的体系结构
Oct 09 PHP
php 获取当前访问的url文件名的方法小结
Feb 08 PHP
PHP用mysql数据库存储session的代码
Mar 05 PHP
PHP学习笔记之二 php入门知识
Jan 12 PHP
php下载文件的代码示例
Jun 29 PHP
php导出中文内容excel文件类实例
Jul 06 PHP
6个超实用的PHP代码片段
Aug 10 PHP
Thinkphp实现短信验证注册功能
Oct 18 PHP
php文件上传 你真的掌握了吗
Nov 28 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
php数组遍历类与用法示例
May 24 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 PHP
php设计模式 Facade(外观模式)
Jun 26 #PHP
php设计模式 Factory(工厂模式)
Jun 26 #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
You might like
改变Apache端口等配置修改方法
2008/06/05 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
2014/10/24 PHP
php实现爬取和分析知乎用户数据
2016/01/26 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
jQuery中的val()示例应用
2014/02/26 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
Jquery动态添加输入框的方法
2015/05/29 Javascript
javascript作用域、作用域链(菜鸟必看)
2016/06/16 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
vue.js中$watch的用法示例
2016/10/04 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
玩转Koa之koa-router原理解析
2018/12/29 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
2020/10/27 Javascript
Python3.x和Python2.x的区别介绍
2013/02/12 Python
使用python统计文件行数示例分享
2014/02/21 Python
python实现linux下抓包并存库功能
2018/07/18 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
Python tempfile模块生成临时文件和临时目录
2020/09/30 Python
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
彪马英国官网:PUMA英国
2019/02/11 全球购物
迪奥美国官网:Dior美国
2019/12/07 全球购物
Java文件和目录(IO)操作
2014/08/26 面试题
货代行业个人求职简历的自我评价
2013/10/22 职场文书
汽车专业毕业生自荐信
2013/11/03 职场文书
食品安全工作实施方案
2014/03/26 职场文书
社区禁毒工作方案
2014/06/02 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
go语言map与string的相互转换的实现
2021/04/07 Golang
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python