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中使用与Perl兼容的正则表达式
Nov 26 PHP
PHP 设计模式之观察者模式介绍
Feb 22 PHP
那些年一起学习的PHP(二)
Mar 21 PHP
基于PHP array数组的教程详解
Jun 05 PHP
PHP抓屏函数实现屏幕快照代码分享
Jan 02 PHP
xss防御之php利用httponly防xss攻击
Mar 21 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
Drupal简体中文语言包安装教程
Sep 27 PHP
如何使用Gitblog和Markdown建自己的博客
Jul 31 PHP
纯php生成随机密码
Oct 30 PHP
yii2分页之实现跳转到具体某页的实例代码
Jun 02 PHP
PHP中单例模式与工厂模式详解
Feb 17 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
360通用php防护代码(使用操作详解)
2013/06/18 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
php代码架构的八点注意事项
2016/01/25 PHP
JavaScript 在各个浏览器中执行的耐性
2009/04/06 Javascript
Jquery 常用方法经典总结
2010/01/28 Javascript
Web前端设计模式  制作漂亮的弹出层
2010/10/29 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
js实现简单计算器
2015/11/22 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
ejsExcel模板在Vue.js项目中的实际运用
2018/01/27 Javascript
实例讲解JavaScript预编译流程
2019/01/24 Javascript
python算法学习之计数排序实例
2013/12/18 Python
python 排序算法总结及实例详解
2016/09/28 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
Python应用领域和就业形势分析总结
2019/05/14 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
2020/05/26 Python
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
印尼在线旅游门户网站:NusaTrip
2019/11/01 全球购物
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
亲子活动总结
2014/04/26 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
只用20行Python代码实现屏幕录制功能
2021/06/02 Python
python元组打包和解包过程详解
2021/08/02 Python