03、代理模式

本文深入解析设计模式中的代理模式(Proxy Pattern),包括其定义、角色(Subject、Proxy、RealSubject)、UML结构图,并提供完整的PHP代码实现示例,帮助开发者理解如何通过代理对象控制对原对象的访问。

代理模式(Proxy Pattern) :给某一个对象提供一个代 理,并由代理对象控制对原对象的引用。代理模式的英 文叫做Proxy或Surrogate,它是一种对象结构型模式。

模式结构

代理模式包含如下角色:

  • Subject: 抽象主题角色
  • Proxy: 代理主题角色
  • RealSubject: 真实主题角色

结构图

 

PHP代码实现

<?php
//Subject: 抽象主题角色
interface Subject
{
   
     
    public function request();
}

//RealSubject: 真实主题角色
class RealSubject implements Subject
{
   
     
    public function request(){
   
     
        var_dump('真实的请求');
    }
}

//Proxy: 代理主题角色
class Proxy implements Subject
{
   
     
    public function request(){
   
     
        $realSubject=new RealSubject();
        $realSubject->request();
    }
}

$a=new Proxy();
$a->request();

运行结果

string '真实的请求' (length=15)

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: