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 相关文章推荐
我的论坛源代码(九)
Oct 09 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
May 02 PHP
PHP可逆加密/解密函数分享
Sep 25 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
Jun 20 PHP
php输入流php://input使用浅析
Sep 02 PHP
浅谈php的优缺点
Jul 14 PHP
微信随机生成红包金额算法php版
Jul 21 PHP
Yii2框架数据库简单的增删改查语法小结
Aug 31 PHP
PHP字符串中抽取子串操作实例分析
Jun 22 PHP
php5对象复制、clone、浅复制与深复制实例详解
Aug 14 PHP
php7下的filesize函数
Sep 30 PHP
THINKPHP5.1 Config的配置与获取详解
Jun 08 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获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
Yii2框架实现注册和登录教程
2016/09/30 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
PHP验证码类ValidateCode解析
2017/01/07 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
canvas绘制环形进度条
2017/02/23 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
python去掉字符串中重复字符的方法
2014/02/27 Python
Python中实现两个字典(dict)合并的方法
2014/09/23 Python
Python判断操作系统类型代码分享
2014/11/22 Python
python检查指定文件是否存在的方法
2015/07/06 Python
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
Python语言的面相对象编程方式初步学习
2016/03/12 Python
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
2018/04/26 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
Linux内核产生并发的原因
2016/11/08 面试题
毕业生找工作推荐信
2013/11/21 职场文书
财务部经理岗位职责
2014/02/03 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
环保建议书作文300字
2015/09/14 职场文书
postgres之jsonb属性的使用操作
2021/06/23 PostgreSQL
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang
Java 多线程并发FutureTask
2022/06/28 Java/Android