自学Java第54天

终于学到动态代理了
这应该是JavaSE里面最难懂的知识点了
学它之前最好先弄懂装饰设计模式

什么是装饰设计模式?
​用简单的一句话来说明就是:
装饰者,被装饰者,装饰者将方法增强​。

如何理解这句话?
就可以用Java中的继承来理解:

子类相当于装饰者
父类相当于被装饰者
子类重写父类相当于方法增强

只不过就代码程层面而言
装饰设计模式比继承更加地具有拓展性
动态代理和装饰设计模式比较像

代理类就相当于装饰者
被代理类就相当于被装饰者
严格上说装饰设计模式就是一种静态代理

​如何理解静态动态?
静态就是代理类是已经创建了的
动态就是代理类本身是没有创建的

​那动态代理中代理类对象是如何获取的呢?

代理:Proxy,本身就是Java里的一个类
它有一个静态方法newProxyInstance()
将这个方法完全弄懂了也就弄懂了动态代理

其中该方法有三个参数:
被代理对象对应的类加载器
被代理对象对应的接口
其中都是利用反射技术获取对应的Class对象

还有一个InvocationHandler接口
调用处理器,它里面有一个invoke方法
该方法就是补充说明第二个参数接口的
根据具体的业务填充上​业务逻辑

总之还是得多敲代码,多练几遍多写几遍就好了
全部评论
讲的还不错吧,蛮清晰的,顺带问一下,装饰设计模式是装饰器模式吗?
点赞 回复 分享
发布于 2020-06-08 10:46
楼主有看视频吗
点赞 回复 分享
发布于 2020-06-08 02:43

相关推荐

水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
评论
3
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务