一、概念
1.真实对象:被代理的对象
2.代理对象:咱们写的本身
3.代理模式:代理对象代理真实对象,达到增强真实对象的功能和目的。
4.实现方式:动态代理在内存中形成代理类,代理对象和真实对象必须实现相同接口。
原理:利用反射生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。
二、JDK动态代理--生活代码案例
通过以上生活案例,我们来写代码,总是代理模式和生活的意思一样,现在商业处处都是代理,买房子,微商等等,有了这些代理,客户获取了更好的感受。
1.卖电脑接口2
/**
* 真实对象和代理对象实现相同的卖电脑接口
*/
public interface SaleComputer {
String pay(double money);
void show();
}
2.北京联想公司(真实对象)
public class Lenovo implements SaleComputer {
@Override
public String pay(double money) {
System.out.println("客户支付了"+money+"买了一台电脑");
return "联想电脑";
}
@Override
public void show() {
System.out.println("展示电脑");
}
}