我对代理模式的理解是:
一个人本该他去做的事情,他由于一些原因不想做,他把他交给别人去做这件事情。比如现在的项目老大都把比较繁琐但又没什么技术含量的东西交给小弟做一样!小弟就是代理者。
例子:代码如下。
接口SubJect.java
Java代码
- package pattern.detegate;
- public interface SubJect {
- public abstract void request();
- }
接口的实现类
Java代码
- package pattern.detegate;
- public class RealSubJect implements SubJect {
- public void request() {
- System.out.println("这里表示真实的对象");
- }
- }
然后是代理类
Java代码
- package pattern.detegate;
- public class ProxySubject implements SubJect {
- private RealSubJect realSubJect;
- public void preRequest() {
- // .............
- }
- public void request() {
- preRequest();
- if (realSubJect == null) {
- realSubJect = new RealSubJect();
- }
- realSubJect.request();
- postRequest();
- }
- public void postRequest() {
- // .............
- }
- }
测试代码
Java代码
- package pattern.detegate;
- public class TestDetegate {
- /**
- * @param args
- */
- public static void main(String[] args) {
- ProxySubject proxy=new ProxySubject();
- proxy.request();
- }
- }