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();
    ?>
    
  • 相关阅读:
    java8 Stream排序字段为空排序方法
    SpringBoot使用token简单鉴权的具体实现方法
    性能调优
    TestNG最简单的测试
    TestNG异常测试
    TestNG中如何执行测试
    TestNG的基本注解
    TestNG介绍
    TestNG 环境搭建
    python第四课笔记
  • 原文地址:https://www.cnblogs.com/bluefrog/p/1925926.html
Copyright © 2011-2022 走看看