代理概述:
在不修改源代码的情况下使得原本不具有某种能力的类、对象具有该种能力,实现了对目标对象的功能扩展,也就是让代理角色帮助被代理角色完成一件事情
静态代理:
静态代理实现简单,但不够灵活,代码冗余,重复代码多,其要实现与被代理对象一样的接口,创建很多代理类,接口增加方法后代理类与被代理对象都要加方法
局限性: 只能代理某一类型接口的实例,不能实现代理任意接口任意方法的操作
静态代理只能代理固定或单一接口的方法,也就是说不能做到任何类任何方法的代理
接口:
interface Mape{
void mape();
}
被代理类:
class User implements Mape{
@Override
public void mape() {
System.out.println("执行核心业务代码");
}
}
代理类:
class Static implements Mape{
private Mape mape;
public Static(Mape mape) {
this.mape = mape;
}
@Override
public void mape() {
System.out.println("获取连接");
mape.mape();
System.out.println("断开连接");
}
}
测试:
public class Text {
public static void main(String[] args) {
User u = new