} public function getPLS() { $pls = "[playlist]\nNumberOfEntries=" . count($this->__songs) . "\n\n"; foreach ($this->__songs as $songCount => $song) { $counter = $songCount + 1; $pls .= "File{$counter}={$song['location']}\n"; $pls .= "Title{$counter}={$song['title']}\n"; $pls .= "Length{$counter}=-1\n\n"; } return $pls; } } $externalRetrievedType = 'pls'; $playlist = new Playlist(); $playlist->addSong('/home/aaron/music/brr.mp3', 'Brr'); $playlist->addSong('/home/aaron/music/goodbye.mp3', 'Goodbye'); if ($externalRetrievedType == 'pls') { $playlistContent = $playlist->getPLS(); } else { $playlistContent = $playlist->getM3U(); } /* DELEGATE SOLUTION */ class newPlaylist { private $__songs; private $__typeObject; public function __construct($type) { $this->__songs = array(); $object = "{$type}PlaylistDelegate";
return $m3u; } public function getPLS() { $pls = "[playlist]]\nNumberOfEntries = " . count($this->_songs) . "\n\n"; foreach ($this->_songs as $songCount => $song) { $counter = $songCount + 1; $pls .= "File{$counter} = {$song['location']}\n"; $pls .= "Title{$counter} = {$song['title']}\n"; $pls .= "LengthP{$counter} = -1 \n\n"; } return $pls; } } $playlist = new Playlist(); $playlist->addSong("/home/aaron/music/brr.mp3", "Brr"); $playlist->addSong("/home/aaron/music/goodbye.mp3", "Goodbye"); $externalRetrievedType = "pls"; if ($externalRetrievedType == "pls") { $playlistContent = $playlist->getPLS(); } else { $playlistContent = $playlist->getM3U(); } echo $playlistContent; //委托模式实现 class newPlaylist { private $_songs; private $_tyepObject; public function __construct($type) {