代理模式
Posted endian11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代理模式相关的知识,希望对你有一定的参考价值。
- 定义:为其他对象提供一种代理以控制对这个对象的访问
- 代理模式有如下角色:
- Subject:抽象主题类,声明真是主题与代理共同的接口方法
- RealSubject:真实主题类,代理类所代表的真实主题。客户端通过代理类间接地调用真实主题类的方法
- Proxy:代理类,持有对真实主题类的引用,在其所实现的接口方法中调用真实主题类中相应的接口方法执行
- client:客户端类
- 代理模式有如下角色:
- 静态代理
- 抽象主题类
public abstract class Subject { public abstract void request(); }
- 真实主题类
public class RealSubject extends Subject{ @Override public void request() { System.out.println("realSub"); } }
- 代理类
public class Proxy extends Subject{ Subject mRealSubject; @Override public void request(){ if (mRealSubject != null){ System.out.println("Proxy request"); mRealSubject.request(); } } public Proxy(Subject mRealSubject) { this.mRealSubject = mRealSubject; } }
- 客户端类
public class Client { public static void main(String[] args){ Subject realSubject = new RealSubject(); Subject proxy = new Proxy(realSubject); proxy.request(); } }
- 抽象主题类
- 动态代理
- 优缺点:
以上是关于代理模式的主要内容,如果未能解决你的问题,请参考以下文章