代理模式(proxy pattern)也叫委托模式,是一个使用率非常高的模式。
定义:
代理模式是一项基本的设计技巧,许多其他的模式,如状态模式、策略模式、访问者模式本质上也采用了代理模式。类图如下所示。
代理模式提供以下3个角色。
subject.java
public interface subject { // 定义一个请求方法 public void request(); }
realsubject.java模式
public class realsubject implements subject { @override public void request() { // 业务逻辑处理 } }
proxysubject.java
public class proxysubject implements subject { private subject subject; public proxysubject(subject subject) { this.subject = subject; } @override public void request() { this.beforerequest(); this.subject.request(); this.afterrequest(); } // 请求前的操作 private void beforerequest() { // 预处理 } // 请求后的操作 private void afterrequest() { // 善后处理 } }
一个代理主题类可以代理多个真实主题,具体代理哪个真实主题是由高层的应用模块决定的,可以通过代理类的构造函数传递被代理者。
代理模式的各类
注意:在所有各类的代理模式中,虚拟代理、远程代理、智能引用代理和保护代理是最为常见的代理模式。
优点:
应用场景:
摘自:
青岛东合信息技术有限公司 . 设计模式(java版) . 电子工业出版社,2012,73-76.
如对本文有疑问, 点击进行留言回复!!
【面试题】研究过tomcat的NioEndpoint源码吗?请阐述下Reactor多线程模型在tomcat中的实现。
荐 厉害了!阿里P8架构师用4大技术文档带你深入解读爆火的中台战略
网友评论