首页 > 代码库 > 代理模式
代理模式
1 <?php 2 3 /** 4 * 和装饰器模式的区别:装饰器模式为了增强功能,而代理模式是为了加以控制 5 * 6 * 装饰器为对象添加一个或多个功能,而代理则控制对对象的访问 7 */ 8 9 interface image10 {11 public function display();12 }13 14 class RealImage implements image15 {16 private $_imgSrc;17 18 public function __construct($imgSrc)19 {20 $this->_imgSrc = http://www.mamicode.com/$imgSrc;21 $this->loadFromDisk();22 }23 24 private function loadFromDisk()25 {26 echo "Load {$this->_imgSrc} from disk<br/>";27 }28 29 public function display()30 {31 echo "Display {$this->_imgSrc}";32 }33 }34 35 36 class ProxyImage implements image37 {38 private $_imgSrc;39 private $_realImage;40 41 public function __construct($imgSrc)42 {43 $this->_imgSrc = http://www.mamicode.com/$imgSrc;44 }45 46 public function display()47 {48 if (!$this->_realImage instanceof RealImage) {49 $this->_realImage = new RealImage($this->_imgSrc);50 }51 52 $this->_realImage->display();53 }54 }55 56 57 58 $p = new ProxyImage(‘a.png‘);59 $p->display();60 61 echo "<br/><br/>";62 $p->display();
代理模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。