一、设计模式是什么
设计模式是一些解决固定问题的方法,至今有23种设计模式
二、设计模式_代理模式
1.概念
- 真实对象:被代理的对象
- 代理对象:代理真实对象的对象
- 代理模式:代理对象代理真实对象,以达到增强真实对象功能的目的
2.实现方式
- 静态代理:有一个类文件藐视代理模式
- 动态代理:在内存中形成代理类
三、动态代理
1.实现步骤
- 代理对象和真实对象实现相同的接口
- 代理对象 = Proxy.ProxyNewInstance( );
- 使用代理对象调用方法
- 增强方法
2.代码实现
到这里,调用的方法并没有执行,这是为什么呢?我们继续……
因为代理对象其实并没有真实对象的方法,没办法自己去调用!只能在invloke方法里通过真实对象才能调用!如:
好了,明白了这个之后,我们来了解如何在invoke里增强真实对象的方法:
3.增强方式
- 增强参数列表
- 增强返回值类型
- 增强方法体执行逻辑
可以看到,虽然第四步使用代理对象调用sale方法,但是由于在invoke方法里,增强了参数列表、返回值、方法体,所以,最后输出的结果和真实对象里的sale方法就完全不一样了!增强了!