Content

PHP结构型模式之代理模式(php搭建代理服务器)新鲜出炉

文章摘要

本文介绍了PHP中的代理模式,通过定义一个`Subject`接口和实现该接口的`RealSubject`类,以及一个继承自`Subject`的`Proxy`类。`Proxy`类通过继承实现了对`RealSubject`的请求处理,并在`request`方法中添加了权限检查和日志记录功能。代码展示了如何通过继承和方法重写,实现对真实服务的间接访问,同时保持了代码的可维护性和扩展性。

<?php // 主题接口 interface Subject { public function request(); } // 真实主题类 class RealSubject implements Subject { public function request() { echo “RealSubject handles request.\n”; } } // 代理类 class Proxy implements Subject { private $realSubject; public function __construct(RealSubject $realSubject) { $this->realSubject=$realSubject; } public function request() { if ($this->checkAccess()) { $this->realSubject->request(); $this->logAccess(); } } private function checkAccess() { echo “Proxy checks access.\n”; return true; } private function logAccess() { echo “Proxy logs access.\n”; } } // 客户端代码 $realSubject=new RealSubject(); $proxy=new Proxy($realSubject); $proxy->request();