php设计模式 Delegation(委托模式)


复制代码 代码如下:

<?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();
?>



相关阅读:
ORA-00704 与 bootstrap 错误
比较两种CSS清除浮动的兼容
ASP.NET 保留文件夹详解
九种方式打造安全的Win Server 2008
Cool Web Scrollbars - 定制网页的滚动条
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
网页制作中常用的Javascript代码
实例讲解JSP Model2体系结构(下)
Javascript中Eval函数的使用说明
解决Vista系统无法开启打印机共享的故障
在JavaScript中实现命名空间
PHP 图片管理程序集锦
Oracle教程:完全备份的SH文件
一段利用WSH获取登录时间的jscript代码
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4