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
jq的get传参数在utf-8中乱码问题的解决php版
Jul 23 PHP
用mysql触发器自动更新memcache的实现代码
Oct 11 PHP
解析php做推送服务端实现ios消息推送
Jul 01 PHP
php获取一个变量的名字的方法
Sep 05 PHP
php线性表的入栈与出栈实例分析
Jun 12 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
Feb 15 PHP
Yii框架中jquery表单验证插件用法示例
Oct 18 PHP
php实现简单加入购物车功能
Mar 07 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
Ajax+PHP实现的删除数据功能示例
Feb 12 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
Jul 18 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
给多个地址发邮件的类
2006/10/09 PHP
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
2014/04/17 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
2017/09/25 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
基于python实现微信模板消息
2015/12/21 Python
Python中装饰器高级用法详解
2017/12/25 Python
Pytorch的mean和std调查实例
2020/01/02 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
python 利用toapi库自动生成api
2020/10/19 Python
python音频处理的示例详解
2020/12/23 Python
Oakley官网:运动太阳镜、雪镜和服装
2016/09/30 全球购物
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
班队活动设计方案
2014/01/30 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
知识竞赛活动方案
2014/02/18 职场文书
远程网络教育毕业生自我鉴定
2014/04/14 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
公司欠款证明
2015/06/24 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
Django实现drf搜索过滤和排序过滤
2021/06/21 Python
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python