Spring(五)静态代理

1、需要知道核心类(被代理类)是哪一个类,并且有什么方法。 

2、非核心的代码需要重复写多次,显得代码的结构臃肿,形成代码冗余。

3、非核心类(代理类)需要实现核心类(被代理类)实现的接口,也就是他们需要实现共同的接口,但是以核心类实现的接口(被代理类)为准。

下面通过一个例子来说明

先声明一个主题接口,接口的实现类有两个一个是真实主题,一个是代理主题

public interface Subject
{
public void request();
}

在实现类中要重写这个方法

public class RealSubjext implements Subject{
public void request() {
System.out.println("11111");
}
}

public class ProxySubjext implements Subject{


RealSubjext realSubjext = new RealSubjext();
public void request() {
System.out.println("00000");
realSubjext.request();
System.out.println("22222");
}
public RealSubjext getRealSubjext() {
return realSubjext;
}

public void setRealSubjext(RealSubjext realSubjext) {
this.realSubjext = realSubjext;
}
}

/*静态代理*/
@Test
public void t1(){
RealSubjext realSubjext = new RealSubjext();
ProxySubjext proxySubjext = new ProxySubjext();
proxySubjext.setRealSubjext(realSubjext);
proxySubjext.request();


}
posted @ 2018-03-08 08:38  Gtr_Right  阅读(106)  评论(0编辑  收藏  举报