静态代理

2017-11-23  本文已影响0人  面包树_A
静态代理UML

实现类和代理类都需要实现该接口。

// 接口
public interface Subject{
    public void request();
}

// 真实类
public class RealSubject implements Subject{
    @Override
    public void request(){ System.out.println("real request"); }
}
// 代理类
public class Proxy implements Subject{
    // 代理类一定要引入真实类,因为代理对象不会做真正的业务逻辑,所以需要调用真实类的业务逻辑方法
    private RealSubject realSubject;
    public Proxy(RealProduct realSubject){ this.realSubject = realSubject; }

    @Override
    public void request(){ 
        // 这样就实现了在实际request之前和之后的操作
        before();
        realSubject.request();
        after();
    }
}

// 客户
public class Client{
  public static void main(String[] args){
    Subject subject = new Proxy(new RealSubject());
    subject.request();
  }
}

缺点:

所以静态代理基本不用。

上一篇 下一篇

猜你喜欢

热点阅读