日期:2011-12-05  浏览次数:20679 次

当一个对象包含复杂单独立的,必须基于判决执行的功能性的若干部分时,最佳的方法是适用基于委托设计模式的对象。 

  1. <?php    
  2.     /**  
  3.      * 示例: Web站点具有创建MP3文件播放列表的功能, 也具有选择以 M3U 或 PLS 格式下载播放列表的功能。  
  4.      * 以下代码示例展示常规与委托两种模式实现  
  5.      */   
  6.     //常规实现    
  7.     class Playlist {   
  8.            
  9.         private $_songs;    
  10.            
  11.         public function __construct() {   
  12.             $this->_songs = array();   
  13.         }   
  14.            
  15.         public function addSong($location$title) {   
  16.             $song = array("location" => $location"title" => $title);   
  17.             $this->_songs[] = $song;   
  18.         }   
  19.            
  20.         public function getM3U() {   
  21.             $m3u = "#EXTM3U\n\n";   
  22.                
  23.             foreach ($this->