zoukankan      html  css  js  c++  java
  • [php]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();
    ?>
    
  • 相关阅读:
    存储过程
    数据库中的锁
    数据库事务
    三大范式
    IOC(一)
    rabbitmq部署
    配置SQLServer2012,允许远程连接
    6种常见的Git错误以及解决的办法
    灵活使用Win+R快捷键提高工作效率
    sql 创建视图常用的几种sql函数
  • 原文地址:https://www.cnblogs.com/bluefrog/p/1925926.html
Copyright © 2011-2022 走看看