日期:2011-12-05 浏览次数:20679 次
当一个对象包含复杂单独立的,必须基于判决执行的功能性的若干部分时,最佳的方法是适用基于委托设计模式的对象。
- <?php
- /**
- * 示例: Web站点具有创建MP3文件播放列表的功能, 也具有选择以 M3U 或 PLS 格式下载播放列表的功能。
- * 以下代码示例展示常规与委托两种模式实现
- */
- //常规实现
- class Playlist {
- private $_songs;
- public function __construct() {
- $this->_songs = array();
- }
- public function addSong($location, $title) {
- $song = array("location" => $location, "title" => $title);
- $this->_songs[] = $song;
- }
- public function getM3U() {
- $m3u = "#EXTM3U\n\n";
- foreach ($this->