package gxx.proxy;
import java.lang.reflect.Method;
public class ResponsebilityChain {
public static void main(String[] args) {
Helloword proxy1=(Helloword)InterceptorJdkProxy.bind(new HelloworldImpl()
, "gxx.proxy.Interceptor1");
Helloword proxy2=(Helloword)InterceptorJdkProxy.bind(proxy1
, "gxx.proxy.Interceptor2");
Helloword proxy3=(Helloword)InterceptorJdkProxy.bind(proxy2
, "gxx.proxy.Interceptor3");
}
}
class Interceptor1 implements Interceptor{
@Override
public boolean before(Object proxy, Object target, Method method,
Object[] args) {
System.out.println("拦截器1的before方法");
return true;
}
@Override
public void around(Object proxy, Object target, Method method, Object[] args) {
}
@Override
public void after(Object proxy, Object target, Method method, Object[] args) {
System.out.println("拦截器1的after方法");
}
}
class Interceptor2 implements Interceptor{
@Override
public boolean before(Object proxy, Object target, Method method,
Object[] args) {
System.out.println("拦截器2的before方法");
return true;
}
@Override
public void around(Object proxy, Object target, Method method, Object[] args) {
}
@Override
public void after(Object proxy, Object target, Method method, Object[] args) {
System.out.println("拦截器2的after方法");
}
}
class Interceptor3 implements Interceptor{
@Override
public boolean before(Object proxy, Object target, Method method,
Object[] args) {
System.out.println("拦截器3的before方法");
return true;
}
@Override
public void around(Object proxy, Object target, Method method, Object[] args) {
}
@Override
public void after(Object proxy, Object target, Method method, Object[] args) {
System.out.println("拦截器3的after方法");
}
}
责任链模式拦截器实现
最新推荐文章于 2021-12-11 15:02:54 发布