代理,指的就是一个角色代表另一个角色采取行动,就象生活中,一个红酒厂商,是不会直接把红酒零售客户的,都是通过代理来完成他的销售业务。而客户,也不用为了喝红酒而到处找工厂,他只要找到厂商在当地的代理就行了,具体红酒工厂在那里,客户不用关心,代理会帮他处理。 
代理模式,就是给某一对象提供代理对象,并由代理对象控制具体对象的引用。 
代理模式涉及的角色: 
抽象主题角色,声明了代理主题和真实主题的公共接口,使任何需要真实主题的地方都能用代理主题代替。 
代理主题角色,含有真实主题的引用,从而可以在任何时候操作真实主题,代理主题功过提供和真实主题相同的接口,使它可以随时代替真实主题。代理主题通过持有真实主题的引用,不但可以控制真实主题的创建或删除,可以在真实主题被调用前进行拦截,或在调用后进行某些操作。 
真实代理对象,定义了代理角色所代表的具体对象。

/**
 * 代理模式
 *
 * 为其他对象提供一个代理以控制这个对象的访问
 *
 */
interface Proxy
{

public function request();

public function display();
}

class RealSubject
{

public function request()
    {
        echo "RealSubject request<br/>";
    }

public function display()
    {
        echo "RealSubject display<br/>";
    }
}

class ProxySubject
{

private $_subject = null;

public function __construct()
    {
        $this->_subject = new RealSubject();
    }

public function request()
    {
        $this->_subject->request();
    }

public function display()
    {
        $this->_subject->display();
    }
}

$objProxy = new ProxySubject();
$objProxy->request();
$objProxy->display();

php代理(proxy)模式相关推荐

  1. 设计模式学习笔记——代理(Proxy)模式

    设计模式学习笔记--代理(Proxy)模式 @(设计模式)[设计模式, 代理模式, proxy] 设计模式学习笔记代理Proxy模式 基本介绍 代理案例 类图 实现代码 Printable接口 Pri ...

  2. 代理(Proxy)模式 vs. 代理(Agency)机构

    有一天,我将设计模式中的代理模式和我们社会中的代理机构联系起来.发现他们之间有非常多的相似的地方,而且可以互相借鉴. 在讨论这个话题之前,我的老板就率先指出了我的缺点.代理是Proxy不是Agency ...

  3. Java 代理(proxy)模式

    代理模式(Proxy Pattern) 代理模式是常用的Java 设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代 ...

  4. 《研磨设计模式》chap11 代理proxy模式

    场景:需要查询所有用户数据,不能翻页都显示出来,只显示姓名,在需要的情况下,点击某个用户的姓名出现详细信息. 1. 正常编码:仅查询当前数据 public static void main(Strin ...

  5. 设计模式--代理(Proxy)模式

    模式定义 为其他对象提供一种代理以控制(隔离,使用接口)对这个对象的访问 类图 要点总结 "增加一层间接层"是软件系统中对许多复杂问题的一种常见解决方法,在面向对象系统中,直接使用 ...

  6. 当Android遇上设计模式之代理(Proxy)模式

    文章目录 1. 代理模式 1.1 代码实现 1.2 使用场景 2. 静态代理与动态代理 设计模式六大原则: 单一职责原则:就一个类仅有一个引起它变化的原因,即类承担的职责单一性: 开放封闭原则:类.模 ...

  7. 设计模式---代理(Proxy)模式

    1 定义 代理模式,为想要访问的对象创建一个代理,使访问原对象变为访问代理对象.代理模式可以提供非常好的访问控制.生活中最多的代理模式例子就是中介. 2 代理模式结构与实现 代理模式通用类图如下所示( ...

  8. Head First 设计模式 —— 13. 代理 (Proxy) 模式

    思考题 如何设计一个支持远程方法调用的系统?你要怎样才能让开发人员不用写太多代码?让远程调用看起来像本地调用一样,毫无瑕疵? P435 已经接触过 RPC 了,所以就很容易知道具体流程:客户端调用目标 ...

  9. 如何使用Proxy模式及Java内建的动态代理机制

    http://zhangjunhd.blog.51cto.com/113473/69996 1.Proxy模式 代理模式支持将某些操作从实际的对象中分离出来,通过它的代理类提供处理.这样便于修改和管理 ...

  10. Java设计模式(10)代理模式(Proxy模式)

    理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣. Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,P ...

最新文章

  1. 计算机视觉知识点总结
  2. python transformer category_Python 生成VOC格式的标签实例
  3. 读《嵌入式系统项目分析入门与实践》⑤
  4. 简单音乐播放实例的实现,Android Service AIDL 远程调用服务
  5. mui实现分享功能_MUI 分享功能(微信、QQ 、朋友圈)
  6. dncnn图像去噪_一种基于DnCNNs改进的图像降噪方法与流程
  7. ctk 组件创建 ui_创建可重复使用的UI组件的提示和技巧
  8. 贵气烫金剪纸牛年新年春节海报PSD分层素材模板
  9. SpringBoot→thymeleaf静态模板
  10. Git——比较版本区别【git status / git diff】
  11. html 滑动条 实时计算,滑动条:拖动滑块改变进度
  12. EDEM颗粒堆积fluent meshing网格生成
  13. VS Code插件离线安装教程
  14. Synchronized和Reentrantlock的区别
  15. 设计模式基础学习之单例模式
  16. 如何用计算机打出下划线,电脑下划线怎么打?下划线怎么输入出来
  17. 1.GraspNet-API之Grasp Lable Format
  18. 萨鲁曼的军队 Saruman‘s Army(挑战程序设计竞赛)
  19. 骂人的到底是些什么人
  20. 十五、修改VGG16网络来适应自己的需求

热门文章

  1. 习题 2.1 简单计算器(20 分)
  2. LINUX使用sed删除匹配行
  3. mybatis中case when用法以及@Param用法
  4. 【Linux】nohup执行jar包
  5. ubuntu安装gitlab社区版
  6. ORACLE ERP各模块会计分录
  7. 自定义标签---word
  8. Excel计算卡方分布,F分布
  9. mysql单步调试工具_通过查询分析器的调试功能进行单步调试
  10. 宝马全新i5电动车首曝光:突显创新与高性能选择