<?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(); //在需要截取兩個對象之間的通信時,最佳的做法是使用一個基於代理設計模式的新對象。
代理設計模式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.