代理設計模式

<?php
//代理設計模式構建了透明置於兩個不同對象之內的一個對象,從而能夠截取或代理這兩個對象間的通信或訪問。
class CD{
    protected $_title = '';
    protected $_band = '';
    protected $_handle = '';

    public function __construct($title, $band){
        $this->_title = $title;
        $this->_band = $band;
    }

    public function buy(){
        $this->_connect();
        echo $this->_handle.": UPDATE CDs SET bought=1 WHERE band='".$this->_band."' AND title='".$this->_title."".PHP_EOL;
    }

    protected function _connect(){
        $this->_handle = 'beijing';
    }
}
$externalTitle = 'zuixuanminzufeng';
$externalBand = 'fenghuangchuanqi';
$cd = new CD($externalTitle, $externalBand);
$cd->buy();

echo PHP_EOL;

class ShandongProxy extends CD{
    protected function _connect(){
        $this->_handle = 'shandong';
    }
}
$cd = new ShandongProxy($externalTitle, $externalBand);
$cd->buy();
//在需要截取兩個對象之間的通信時,最佳的做法是使用一個基於代理設計模式的新對象。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章