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函数常用用法小结
Feb 08 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
Jun 13 PHP
php引用计数器进行垃圾收集机制介绍
Sep 19 PHP
浅析php header 跳转
Jun 17 PHP
PHP swfupload图片上传的实例代码
Sep 30 PHP
php常用数学函数汇总
Nov 21 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
Oct 10 PHP
php限制文件下载速度的代码
Oct 20 PHP
ecshop适应在PHP7的修改方法解决报错的实现
Nov 01 PHP
php解析mht文件转换成html的实例
Mar 13 PHP
Laravel 实现数据软删除功能
Aug 21 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
B2K与车机的中波PK
2021/03/02 无线电
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
让图片跳跃起来  javascript图片轮播特效
2016/02/16 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
Bootstrap开发实战之第一次接触Bootstrap
2016/06/02 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
原生JS实现首页进度加载动画
2016/09/14 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
Move.js入门
2017/02/08 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
Vue.js 2.5新特性介绍(推荐)
2017/10/24 Javascript
基于node.js实现微信支付退款功能
2017/12/19 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
一张图带我们入门Python基础教程
2017/02/05 Python
python调用API实现智能回复机器人
2018/04/10 Python
python在html中插入简单的代码并加上时间戳的方法
2018/10/16 Python
Django Python 获取请求头信息Content-Range的方法
2019/08/06 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
建筑管理专业求职信
2014/07/28 职场文书
房产转让协议书(2014版)
2014/09/30 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
八年级英语教学计划
2015/01/23 职场文书
寻找成龙观后感
2015/06/12 职场文书
就业指导讲座心得体会
2016/01/15 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
该怎么书写道歉信?
2019/07/03 职场文书
python全面解析接口返回数据
2022/02/12 Python
十大动画制作软件,Adobe产品上榜两款,第一是行业标准软件
2022/03/18 杂记