面试-静态代理
目标类、代理接口类、代理类源码如下:
代码语言:javascript复制package cn.qiu.staticc.inter.imp;
import cn.qiu.staticc.inter.UserInterface;
/**
* 目标类(核心业务类)
* @author 秋日芒草
*
*/
public class UserImpl implements UserInterface{
@Override
public String eat() {
return "eat.....";
}
}
代码语言:javascript复制package cn.qiu.staticc.inter;
/**
* 需要代理的接口
* @author 秋日芒草
*
*/
public interface UserInterface {
public String eat();
}
代码语言:javascript复制package cn.qiu.staticc.stc;
import cn.qiu.staticc.inter.UserInterface;
import cn.qiu.staticc.inter.imp.UserImpl;
/**
* 代理类,同时要实现代理的接口
* @author 秋日芒草
*
*/
public class UserStatic implements UserInterface{
// 需要包含目标类的引用
UserImpl userImpl = new UserImpl();
@Override
public String eat() {
System.out.println("日志收集,参数收集开始");
// 之前的业务
String eat = userImpl.eat();
// 之后的业务
System.out.println("日志收集结束,参数收集结束");
return eat;
}
}