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投票程序源码
Mar 11 PHP
php中将网址转换为超链接的函数
Sep 02 PHP
php正则表达式使用的详细介绍
Apr 27 PHP
ThinkPHP验证码使用简明教程
Mar 05 PHP
PHP curl 抓取AJAX异步内容示例
Sep 09 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
Oct 23 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 PHP
php生成唯一数字id的方法汇总
Nov 18 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
Dec 11 PHP
深入解析PHP的Laravel框架中的event事件操作
Mar 21 PHP
PHP+Ajax异步带进度条上传文件实例
Nov 01 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
Sep 04 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
利用php-cli和任务计划实现订单同步功能的方法
2017/05/03 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
Javascript this关键字使用分析
2008/10/21 Javascript
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
jQuery中:image选择器用法实例
2015/01/03 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
Javascript实现时间倒计时效果
2017/07/15 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
python的unittest测试类代码实例
2017/12/07 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
Python实现括号匹配方法详解
2020/02/10 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
意大利男装网店:Vrients
2019/05/02 全球购物
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
小学综合实践活动总结
2014/07/07 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
道歉的话怎么说
2015/05/12 职场文书
父亲节感言
2015/08/03 职场文书
2016党校培训心得体会
2016/01/07 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
golang http使用踩过的坑与填坑指南
2021/04/27 Golang
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL