定义
为其他对象提供代理,控制对代理对象的访问,代理又叫委托模式
Subject 抽象主题角色(可以使接口,也可以是抽象类)
RealSubjuct 真正的角色(被代理的类)
Proxy 代理类
例:
public interface Subject{ //定义方法 public void doSomething();}public class RealSubject implements Subject{ public void doSomething(){ //真正的业务逻辑 }}//他代理了真正处理业务逻辑的对象public class Proxy implements Subject{ private RealSubject subject = null; public Proxy(){ this.sujuct = new RealSubject(); } //传递其他参数创建被代理类 public Proxy(Object object){ this.sujuct = new RealSubject(object); } public void doSomething(){ this.before(); this.subject.doSomething(); this.after(); } //预处理方法 private void before(){ } //善后处理方法 private void after(){ }}复制代码
优点
职责清晰
扩展性
使用场景
为了减轻类的负担(网络购物,你只想买了到我手里,所以店铺做了找快递,寄快递,送东西到你手上的过程)
代理模式的扩展
强制代理
//暂时先不写了,这个不明白干嘛用,貌似是对外写的时候强制让使用者通过代理去访问,