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 foreach 参数强制类型转换的问题
Dec 10 PHP
drupal 代码实现URL重写
May 04 PHP
解析crontab php自动运行的方法
Jun 24 PHP
php 批量替换程序的具体实现代码
Oct 04 PHP
php自定文件保存session的方法
Dec 10 PHP
PHP中mysqli_affected_rows作用行数返回值分析
Dec 26 PHP
总结的一些PHP开发中的tips(必看篇)
Mar 24 PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 PHP
PHP生成指定范围内的N个不重复的随机数
Mar 18 PHP
PHP实现微信提现(企业付款到零钱)
Aug 01 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 27 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函数
2006/12/06 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
Javascript/Jquery——简单定时器的多种实现方法
2013/07/03 Javascript
javascript学习笔记(七)Ajax和Http状态码
2014/10/08 Javascript
javascript定时器完整实例
2015/02/10 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
2020/06/11 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
JS如何生成动态列表
2020/09/22 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
简单实现python爬虫功能
2015/12/31 Python
深入浅析Python传值与传址
2018/07/10 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
python实现简单的tcp 文件下载
2020/09/16 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
python不同版本的_new_不同点总结
2020/12/09 Python
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
YOOX台湾:意大利奢侈品电商
2018/10/13 全球购物
历史学专业毕业生求职信
2013/09/27 职场文书
环境工程毕业生自荐信
2013/11/17 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
蜗居观后感
2015/06/11 职场文书
学校标语口号大全
2015/12/26 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers