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 相关文章推荐
MySql 按时间段查询数据方法(实例说明)
Nov 02 PHP
php 删除记录同时删除图片文件的实现代码
May 12 PHP
php中批量删除Mysql中相同前缀的数据表的代码
Jul 01 PHP
解析php中获取url与物理路径的总结
Jun 21 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
Oct 14 PHP
Yii中创建自己的Widget实例
Jan 05 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
Nov 05 PHP
PHP 7.1新特性的汇总介绍
Dec 16 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
Mar 25 PHP
php 一维数组的循环遍历实现代码
Apr 10 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 PHP
PHP7 list() 函数修改
Mar 09 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
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
超小PHP小马小结(方便查找后门的朋友)
2012/05/05 PHP
解析php如何将日志写进syslog
2013/06/28 PHP
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
全新Mac配置PHP开发环境教程
2016/02/03 PHP
php强制下载文件函数
2016/08/24 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
js 小数取整的函数
2010/05/10 Javascript
JS实现图片预加载无需等待
2012/12/21 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
微信小程序 教程之wxapp视图容器 swiper
2016/10/19 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
js实现符合国情的日期插件详解
2017/01/19 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
详解JavaScript添加给定的标签选项
2018/09/17 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
解决pycharm界面不能显示中文的问题
2018/05/23 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
Python for循环搭配else常见问题解决
2020/02/11 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
Python连接mysql方法及常用参数
2020/09/01 Python
工厂厂长岗位职责
2013/11/08 职场文书
房地产开发计划书
2014/01/10 职场文书
运动会广播稿30字
2014/01/21 职场文书
工作会议主持词
2014/03/17 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
党员自我评价2015
2015/03/03 职场文书
2015年师德表现自我评价
2015/03/05 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python