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+AJAX实现无刷新注册(带用户名实时检测)
Dec 02 PHP
PHP中对用户身份认证实现两种方法
Jun 04 PHP
解析posix与perl标准的正则表达式区别
Jun 17 PHP
php使用sql数据库 获取字段问题介绍
Aug 12 PHP
php引用传值实例详解学习
Nov 06 PHP
PHP中使用数组指针函数操作数组示例
Nov 19 PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 PHP
php+xml实现在线英文词典查询的方法
Jan 23 PHP
php动态变量定义及使用
Jun 10 PHP
php+ajax实现无刷新的新闻留言系统
Dec 21 PHP
Thinkphp批量更新数据的方法汇总
Jun 29 PHP
php版微信公众号自定义分享内容实现方法
Sep 22 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 ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
PHP 使用MySQL管理Session的回调函数详解
2013/06/21 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
AJAX使用了UpdatePanel后无法使用alert弹出脚本
2010/04/02 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
javascript中的document.open()方法使用介绍
2013/10/09 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
React中的render何时执行过程
2018/04/13 Javascript
如何进行微信公众号开发的本地调试的方法
2019/06/16 Javascript
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
Python线上环境使用日志的及配置文件
2019/07/28 Python
python conda操作方法
2019/09/11 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
python Pexpect模块的使用
2020/12/25 Python
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
自主实习接收函
2014/01/13 职场文书
职工运动会邀请函
2014/01/19 职场文书
网络编辑职责
2014/03/01 职场文书
大学班级计划书
2014/04/29 职场文书
农村门前三包责任书
2014/07/25 职场文书
销售员试用期自我评价
2014/09/15 职场文书
公民授权委托书范本
2014/09/17 职场文书
学生会副主席竞选稿
2015/11/19 职场文书
社区结对共建协议书
2016/03/23 职场文书
Python中with上下文管理协议的作用及用法
2022/03/18 Python
mysql查找连续出现n次以上的数字
2022/05/11 MySQL