经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » 设计模式 » 查看文章
PHP设计模式—代理模式
来源:cnblogs  作者:幽篁晓筑  时间:2020/11/9 16:08:10  对本文有异议

 

定义:

代理模式(Proxy):在客户端与实体之间建立一个代理对象(proxy),客户端对实体进行操作全部委派给代理对象,隐藏实体的具体实现细节。

 

结构:

  • Subject:subject 类,定义了 RealSubject 和 Proxy 的共用接口,这样就在任何使用 RealSubject的地方都可以使用 Proxy。
  • RealSubject:RealSubject 类,定义 Proxy 所代表的真实实体。
  • Proxy:实现Subject 接口并在内部引用了 RealSubject。
  • Client:客户端代码。

 

代码实例:

  1. /**
  2. * Subject.php
  3. * Interface Subject
  4. */
  5. interface Subject
  6. {
  7. public function request();
  8. }
  9. /**
  10. * RealSubject.php
  11. * Class RealSubject
  12. */
  13. class RealSubject implements Subject
  14. {
  15. /**
  16. * 真实请求方法具体实现
  17. */
  18. public function request()
  19. {
  20. // TODO: Implement request() method.
  21. echo "真实的请求<br/>\n";
  22. }
  23. }
  24. /**
  25. * Proxy.php
  26. * Class Proxy
  27. */
  28. class Proxy implements Subject
  29. {
  30. /**
  31. * @var RealSubject
  32. */
  33. protected $realSubject;
  34. /**
  35. * Proxy constructor.
  36. */
  37. public function __construct()
  38. {
  39. $this->realSubject = new RealSubject();
  40. }
  41. /**
  42. * 调用真实请求方法
  43. */
  44. public function request()
  45. {
  46. // TODO: Implement request() method.
  47. $this->realSubject->request();
  48. }
  49. }

 

客户端调用:

  1. $proxy = new Proxy();
  2. $proxy->request();

 

原文链接:http://www.cnblogs.com/woods1815/p/13846511.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号