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函数,php爱好者站推荐
Mar 19 PHP
php获取字段名示例分享
Mar 03 PHP
PHP中使用匿名函数操作数据库的例子
Nov 17 PHP
PHP快速生成各种信息提示框的方法
Feb 03 PHP
PHP错误机制知识汇总
Mar 24 PHP
PHP微信红包生成代码分享
Oct 06 PHP
thinkphp分页集成实例
Jul 24 PHP
PHP使用文件锁解决高并发问题示例
Mar 29 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
Mar 31 PHP
Yii2框架数据验证操作实例详解
May 02 PHP
PhpStorm本地断点调试的方法步骤
May 21 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 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中函数内引用全局变量的方法
2008/10/20 PHP
PHP chr()函数讲解
2019/02/11 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
js验证模型自我实现的具体方法
2013/06/21 Javascript
JS+CSS实现六级网站导航主菜单效果
2015/09/28 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
React组件的三种写法总结
2017/01/12 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
Python基础中所出现的异常报错总结
2016/11/19 Python
Python实现选择排序
2017/06/04 Python
python实现简单神经网络算法
2018/03/10 Python
儿童学习python的一些小技巧
2018/05/27 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
Python super()函数使用及多重继承
2020/05/06 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
Python logging模块handlers用法详解
2020/08/14 Python
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
一套.net面试题及答案
2016/11/02 面试题
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
委托书的格式
2014/08/01 职场文书
2014年教师节座谈会发言稿
2014/09/10 职场文书
2015年度个人业务工作总结
2015/04/27 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
Python Matplotlib绘制条形图的全过程
2021/10/24 Python
php png失真的原因及解决办法
2021/10/24 PHP
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS