13.代理模式

Posted zhongj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13.代理模式相关的知识,希望对你有一定的参考价值。

  • 一、角色
    • 主题接口(Subject):定义代理类和真实主题的公共对外方法
    • 真实主题(RealSubject):真正实现业务逻辑的类
    • 代理类(ProxyHandler):用来代理和封装真实主题
  • 二、适用场景
    • 代理对象存在的价值主要用于拦截对真实业务对象的访问
    • 代理对象应该具有和目标对象(真实业务对象)相同的方法,即实现共同的接口或继承于同一个类
    • 代理对象应该是目标对象的增强,否则我们就没有必要使用代理了
  • 三、实例
    • 图1是一个播放电影的实例,电影被委托给电影院进行播放,其中Movie是主题接口,RealMovie是真实主题,Cinema是代理类,客户端通过调用Cinema,Cinema的play方法实际调用的是RealMovie的paly方法,并加入了增强逻辑,图中的例子是一种静态代理模式,下面代码示例中还给出了在JAVA中利用jdk的Proxy对象的newProxyInstance方法实现动态代理的方式
    • 代码地址:https://github.com/lanhei/DesignPattern/tree/master/src/com/lanhei/patterns/proxy
      技术图片
      图-1

以上是关于13.代理模式的主要内容,如果未能解决你的问题,请参考以下文章

13.设计模式_代理模式

13 代理模式

13.代理模式

设计模式的征途—13.代理(Proxy)模式

大话涉及模式Python实现-代理模式

静态代理模式代码演示