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新手上路(五)
Oct 09 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
Apr 15 PHP
php 判断服务器操作系统的类型
Feb 17 PHP
php数组编码转换示例详解
Mar 11 PHP
浅谈php自定义错误日志
Feb 13 PHP
php微信支付之APP支付方法
Mar 04 PHP
php限制ip地址范围的方法
Mar 31 PHP
PHP概率计算函数汇总
Sep 13 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
Jun 09 PHP
laravel自定义分页效果
Jul 23 PHP
php微信公众号开发之校园图书馆
Oct 20 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
May 02 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
使用无限生命期Session的方法
2006/10/09 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
php获取新浪微博数据API实例
2013/11/12 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
jQuery textarea的长度进行验证
2009/05/06 Javascript
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
jQuery中hide()方法用法实例
2014/12/24 Javascript
深入学习JavaScript中的Rest参数和参数默认值
2015/07/28 Javascript
原生js实现倒计时功能(多种格式调用)
2017/01/12 Javascript
关于vue-resource报错450的解决方案
2017/07/24 Javascript
老生常谈js数据类型
2017/08/03 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
2017/08/16 Javascript
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
python与php实现分割文件代码
2017/03/06 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
python实现程序重启和系统重启方式
2020/04/16 Python
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
趣味游戏活动方案
2014/02/07 职场文书
2014年母亲节寄语
2014/05/07 职场文书
公务员中国梦演讲稿
2014/08/19 职场文书
2014年个人委托书范本
2014/10/13 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
社区敬老月活动总结
2015/05/07 职场文书
安全生产奖惩制度
2015/08/06 职场文书
2016年第104个国际护士节活动总结
2016/04/06 职场文书
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis