代理(Proxy)模式:
代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。
核心作用:
通过代理,控制对对象的访问。
可以详细控制访问某个(某类)对象的方法,在调用这个方法之前做前置处理,在调用这个方法之后做后置处理。即AOP的微观实现。
AOP(Aspect Oriented Programming面向切面编程)的核心实现机制。
生活中的场景:
所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
例如,客户要找某个明星唱歌,首先需要找到他的经纪人,然后由他的经纪人来安排某明星唱歌。
经纪人在演唱会举办前需要处理一些前置处理(面谈,合同起草,签字,收预付款,安排机票和车辆等)在演唱会举办后需要处理一些后置处理(收尾款等)。此时某明星(真实角色)只需要关心如何唱歌就可以了,其他事情全部交给经纪人(代理)来办。
核心角色:
这里写图片描述
抽象对象角色:声明了代理对象和真实对象的共同接口,定义代理对象和真实对象的公共对外方法。这样一来在任何可以使用真实对象的地方都可以使用代理对象。
真实对象角色:定义了代理对象所代表的真实对象。实现抽象对象,定义真实对象所需要实现的业务逻辑,供代理对象调用。关注真正的业务逻辑。
代理对象角色:实现抽象对象,是真实对象的代理,通过真实对象的业务逻辑方法来实现抽象方法,并附加自己的操作。将统一的流程控制放到代理对象中处理。
代理对象内部含有真实对象的引用,从而可以在任何时候操作真实对象;代理对象提供一个与真实对象相同的接口,以便可以在任何时候替代真实对象。代理对象通常在客户端调用传递给真实对象之前或之后,执行某个操作,而不是单纯地将调用传递给真实对象。
应用场景:
安全代理:屏蔽对真实角色的直接访问。
远程代理:通过代理类处理远程方法调用。
延迟加载:先加载轻量级的代理对象,真正需要再去加载真实对象。(图片的延迟加载)
分类:
静态代理:(静态定义代理类)
上面例子的代码:
声明了代理对象和真实对象的共同接口,定义代理对象和真实对象的公共对外方法。
public interface Star { void confer(); void signContract(); void bookTicket(); void sing(); void collectMoney();}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- 如何高效地部署 Java 应用程序?(如何部署Java应用程序)
- Java 类的访问控制顺序究竟是怎样的?(java类的访问控制顺序是什么)
- 如何轻松解决 java exe4j 安装问题?(如何解决java exe4j安装问题)
- 如何在 Java 中向 MySQL 数据库添加数据?(java怎么向mysql数据库中添加)
- 如何获取 Java 枚举类的值?(java枚举类的值怎么获取)
- 如何在 Java 中向数据库添加一条数据?(java怎么向数据库添加一条数据)
- 宁夏软考考试科目有哪些?2025年宁夏软考考试科目安排
- Uncomtrade数据库异地备份指南
- CORS 在微服务架构中的应用场景有哪些?(cors在微服务架构中的应用场景)
- 2024下半年陕西软考成绩复查通知