参考:https://www.cnblogs.com/baizhanshi/p/6611164.html
1. 代理模式目的?
为客户端,屏蔽 接口的实现类,提供一个代理类来实现 对接口实现类的 访问。
2. 代理类分为哪两种?
静态代理:开发者创建代理类,编译时,代理类的.class文件已经生成。
动态代理: 程序运行时,运用反射机制 动态创建而成。
3. 什么是代理类, 什么是委托类?
静态代理:
接口的实现类,就是委托类;实现且关联 接口的类, 就是静态代理类
4. 代理类 为 委托类 做什么?
代理类 为 委托类 进行消息预处理, 进行消息后续处理,然后转发消息。
预处理和后续处理之间,是 委托类 处理消息。
5.静态代理 的 优点? 缺点?
优点: 使客户端 不需要 知道实现类是什么,只需要知道 代理类即可。对于 构造函数的参数部分, 可以用工厂模式解决。
缺点:
1. 如果接口增加一个方法, 所有代理类 也需要实现此方法,增加代码维护复杂度。
2. 静态代理值为 一个接口 提供代理,如果还要 为其他接口 提供代理, 需要 再次定义代理类。
6. 动态代理的优点?
动态代理 类 可以完成 全部的代理功能, 不必为每一个 接口 开发代理类。
动态代理 只需要 一个 invoke接口 就能 实现 对 所有接口中方法的 代理。
网友评论