<?php /** * 代理模式 * 建立具體要被代理類的接口 * 代理類也集成要被代理類的接口 * 代理類建立被代理類 * 代理類實現接口 */ /** * Interface ObjectIO * 要被代理的類抽象接口 */ interface ObjectIO { public function GetName(); } /** * Class SpecificObject * 要被代理的類 */ class SpecificObject implements ObjectIO { public function GetName() { // TODO: Implement GetName() method. echo '具體要被代理的類'.PHP_EOL; } } /** * Class Proxy * 具體代理對象繼承要被代理對象的接口 */ class Proxy implements ObjectIO { protected $proxy; // 建立代理對象 public function __construct() { $this->proxy = new SpecificObject(); } public function GetName() { // TODO: Implement GetName() method. $this->proxy->GetName(); } } $proxy = new Proxy(); $proxy->GetName(); // 具體要被代理的類