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.代理模式的主要内容,如果未能解决你的问题,请参考以下文章