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 相关文章推荐
判断Keep-Alive模式的HTTP请求的结束的实现代码
Aug 06 PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
Apr 08 PHP
PHP中ob_start函数的使用说明
Nov 11 PHP
浅谈discuz密码加密的方式
May 22 PHP
PHP采集类Snoopy抓取图片实例
Jun 19 PHP
Yii使用find findAll查找出指定字段的实现方法
Sep 05 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
Apr 21 PHP
yii2超好用的日期组件和时间组件
May 05 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
实例说明js脚本语言和php脚本语言的区别
Apr 04 PHP
php实现推荐功能的简单实例
Sep 29 PHP
TP5框架请求响应参数实例分析
Oct 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
php判断输入不超过mysql的varchar字段的长度范围
2011/06/24 PHP
PHP计算2点经纬度之间的距离代码
2013/08/12 PHP
PHP引用(&amp;)各种使用方法实例详解
2014/03/20 PHP
php中socket的用法详解
2014/10/24 PHP
php中file_exists函数使用详解
2015/05/08 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
Python中自定义函数的教程
2015/04/27 Python
python中global用法实例分析
2015/04/30 Python
3分钟学会一个Python小技巧
2018/11/23 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
解决Python图形界面中设置尺寸的问题
2020/03/05 Python
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
信息专业本科生个人的自我评价
2013/10/28 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
写字楼租赁意向书
2014/07/30 职场文书
植物生产学专业求职信
2014/08/08 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
文艺演出主持词
2015/07/01 职场文书
学习十八大的感悟
2015/08/11 职场文书