php 디자인 모델 - 의뢰 모델

1552 단어
<?php  
// -   
// , cd , cd   
class cd {  
    protected $cdInfo = array();   
      
    public function addSong($song) {  
        $this->cdInfo[$song] = $song;  
    }  
      
    public function playMp3($song) {  
        return $this->cdInfo[$song] . '.mp3';  
    }  
      
    public function playMp4($song) {  
        return $this->cdInfo[$song] . '.mp4';  
    }  
}  
$oldCd = new cd;  
$oldCd->addSong("1");  
$oldCd->addSong("2");  
$oldCd->addSong("3");  
$type = 'mp3';  
if ($type == 'mp3') {  
    $oldCd->playMp3();  
} else {  
    $oldCd->playMp4();  
}

의뢰 모드를 사용한 후:
<?php  
// -   
// cd   
class cdDelegate {  
    protected $cdInfo = array();   
      
    public function addSong($song) {  
        $this->cdInfo[$song] = $song;  
    }  
      
    public function play($type, $song) {  
        $obj = new $type;  
        return $obj->playList($this->cdInfo, $song);  
    }  
}  
  
class mp3 {  
    public function playList($list) {  
        return $list[$song] . '.mp3';  
    }  
}  
  
class mp4 {  
    public function playList($list) {  
        return $list[$song] . '.mp4';  
    }  
}  
  
$newCd = new cd;  
$newCd->addSong("1");  
$newCd->addSong("2");  
$newCd->addSong("3");  
$type = 'mp3';  
$oldCd->play('mp3', '1'); // 

위탁 모델: 다른 대상에게 분배와 위탁을 통해 핵심 대상의 판결과 복잡한 기능성을 제거한다

좋은 웹페이지 즐겨찾기