代理模式简介:静态代理VS与动态代理

news/2024/9/28 11:19:35 标签: 代理模式, JAVA, 面试, 设计模式

代理模式:静态代理VS动态代理

  • 1、定义
  • 2、分类
    • 2.1 静态代理
    • 2.2 动态代理
  • 3、使用场景
  • 4、总结


💖The Begin💖点点关注,收藏不迷路💖

1、定义

代理模式是一种设计模式,通过代理对象控制对目标对象的访问。简而言之,就是“请人代劳”。

2、分类

2.1 静态代理

  • 特点:编译时确定代理类,需与目标类实现相同接口。
  • 优点:不修改目标对象即可扩展功能。
  • 缺点:类多,维护成本高。

2.2 动态代理

  • JDK动态代理:基于接口,运行时生成代理对象。
  • Cglib代理:基于子类,无需接口,扩展性强。

3、使用场景

  • 代码修改:不想直接修改原代码时。
  • 隐藏控制:需要隐藏或控制访问某个类时。
  • 权限管理:需要根据调用者提供不同权限时。
  • 性能优化:如懒加载实例,提高访问速度。

4、总结

代理模式通过代理对象增强目标对象的功能,提高代码的灵活性和可维护性。静态代理适合简单场景,动态代理(JDK或Cglib)更灵活,适用于复杂需求。

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

http://www.niftyadmin.cn/n/5680989.html

相关文章

【吊打面试官系列-MySQL面试题】Mysql什么情况下设置了索引但无法使用?

大家好,我是锋哥。今天分享关于【Mysql什么情况下设置了索引但无法使用】面试题,希望对大家有帮助; Mysql什么情况下设置了索引但无法使用 1、以“%”开头的 LIKE 语句,模糊匹配 2、OR 语句前后没有同时使用索引 3、数据类型出现…

Linux下的驱动开发一

设备驱动 设备驱动程序(Device Driver)是操作系统中的一种软件组件,负责管理和控制计算机硬件设备的工作。驱动程序通过提供操作系统和硬件设备之间的接口,使得操作系统和应用程序能够与硬件设备进行交互,而无需了解硬…

蜂鸟bebirdt15、西圣find、泰视朗可视挖耳勺好用吗?测评数据对比看这里

可视挖耳勺在当下已经被广泛使用,不过对于新手来说,选择一款优质产品却并不容易。蜂鸟t15、西圣find、泰视朗可视挖耳勺好用吗?作为一个测评博主,近期有不少用户问我这个问题。 根据目前市场上可视挖耳勺的品牌情况来看&#xff0…

Harbor系列之12:对接外部redis和pg数据库的harbor容器化部署

对接外部redis和pg数据库的harbor容器化部署 harbor部署到docker环境中,安装时除了可以自带pg数据库和redis缓存之外,也可以对接外部的pg数据库和redis,在harbor部署到生产环境中和高可用落地方案中可以作为考虑的方案。 本文部署Harbor v2…

技术速递|适用于 .NET 和 .NET MAUI Android 应用程序的 Android 资产包

作者:Dean Ellis - 高级软件工程师 排版:Alan Wang 我们在 .NET 9 中为 .NET 和 .NET MAUI Android 应用程序引入了一种生成资产包的新方法,您可以从今天就开始尝试使用。什么是资产包?为什么要使用它们?如何开始&…

RabbitMQ 界面管理说明

1.RabbitMQ界面访问端口和后端代码连接端口不一样 界面端口是15672 http://localhost:15672/ 后端端口是 5672 默认账户密码登录 guest 2.总览图 3.RabbitMq数据存储位置 4.队列 4.客户端消费者连接状态 5.队列运行状态 6.整体运行状态

Java-常见面试题收集(二十)

二十九 微服务理论 1 CAP 定理介绍 CAP 定理是由加州⼤学伯克利分校 Eric Brewer 教授提出来的,他指出 WEB 服务⽆法同时满⾜⼀下 3 个属性:   ⼀致性(Consistency) : 客户端知道⼀系列的操作都会同时发⽣(⽣效)   可⽤性(Availability)…

leetcode946. 验证栈序列

给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。 示例 1: 输入:pushed [1…