当前位置: 首页 > wzjs >正文

有没有做任务一样的网站兼职幽默软文经典案例300

有没有做任务一样的网站兼职,幽默软文经典案例300,哪个网站专门做母婴,一级消防工程师代理模式 代理模式,也叫委托模式。 Spring AOP 是基于动态代理来实现 AOP 的 定义 为其他对象提供一种代理 以控制对这个对象的访问。它的作用就是通过提供一个代理类,让我们在调用目标方法的时候,不再是直接对目标方法进行调用,而…

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


代理模式


代理模式,也叫委托模式

Spring AOP 是基于动态代理来实现 AOP 的


定义


  • 其他对象提供一种代理 以控制对这个对象的访问
  • 它的作用就是通过提供一个代理类,让我们在调用目标方法的时候,不再是直接对目标方法进行调用,而是通过代理类间接调用

在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端目标对象之间起到中介的作用。


使用代理前:

image-20250420174514464


使用代理后:

image-20250420174527254


代理模式角色


角色名称描述房屋租赁中的对应角色
Subject业务接口类
可以是抽象类或者接口(不一定有)。
定义了业务操作的接口。
房屋租赁的通用操作(如出租房屋)
RealSubject业务实现类
具体的业务执行,也就是被代理对象
房东
Proxy代理类
RealSubject 的代理
代理对象内部含有对 RealSubject 的引用,并实现 Subject 接口
中介

UML 类图如下:

image-20250420174647181

简单总结一下:

  • 首先,Subject 是一个接口或者抽象类,定义了 RealSubjectProxy共同方法
  • RealSubject 实际执行任务的对象,而 Proxy控制对 RealSubject 的访问

两种代理模式的区别


代理模式可以在不修改被代理对象的基础上,通过扩展代理类,进行一些功能的附加增强


根据代理创建时期代理模式分为静态代理动态代理静态代理是在编译时确定代理关系,而动态代理是在运行时动态生成的


  • 静态代理:
    • 由程序员创建代理类特定工具自动生成源代码再对其编译
    • 程序运行前代理类 .class 文件就已经存在了。

  • 动态代理:
    • 在程序运行时,运用反射机制动态创建而成。

静态代理


静态代理:在程序运行前,代理类的 .class 文件就已经存在了。

在出租房子之前,中介已经做好了相关的工作,就等租户来租房子了;

我们通过代码来加深理解。以房租租赁为例:


定义接口(定义房东要做的事情,也是中介需要做的事情):

image-20250421215536731


实现接口(房东出租房子):

image-20250421215735024


代理(中介,帮房东出租房子):

image-20250421215904847


  1. RealSubject 实际执行任务的对象,而 Proxy控制对 RealSubject 的访问
  2. 代理对象内部含有对 RealSubject 的引用,并实现 Subject 接口

所以中介类中,应该有房东,因为只有房东授权,中介才能带中介看房子

image-20250421220159344


中介的 saleHouse() 调用房东的 saleHouse(),表示真正卖房的人是房东:

image-20250421220446801

本质是房东的 saleHouse() 借助中介的 saleHouse() 套了一层壳:


租客来看房了,房租对中介进行授权,让中介有带租客看房子的权力:

image-20250421220923557


我们在拆的细一点:

image-20250421221523649


上面的代码逻辑是,房东需要出租一个房子 target 给租客,房东先把房子 target 这个任务给中介;


但是上面的代码还是不够好,因为租房子应该使用接口的方法:

image-20250421222757349


修改:

image-20250421223159655


image-20250421223737493


运行结果:

image-20250421224314645


image-20250421224245055


租客 中介(Proxy) 房东(RealSubject) 我要租房 检查租客资质 转发租房请求 确认可出租 签订代理合同 交付钥匙 租客 中介(Proxy) 房东(RealSubject)

上面这个代理实现方式就是静态代理(仿佛啥也没干)

从上述程序可以看出,虽然静态代理完成了对目标对象的代理,但是由于代码都写死了对目标对象的每个方法的增强都是手动完成的,非常不灵活。所以日常开发几乎看不到静态代理的场景。


接下来新增需求:中介又新增了其他业务:代理房屋出售。

我们需要对上述代码进行修改:


  1. 接口定义修改。

image-20250421224636230


  1. 接口实现修改。

image-20250421224525655


  1. 代理类修改。

image-20250421224621059


从上述代码可以看出,我们修改接口(Subject)业务实现类(RealSubject)时,还需要修改代理(Proxy)

同样的,如果有新增接口(Subject)业务实现类(RealSubject),也需要对每一个业务实现类新增代理类(Proxy)

既然代理的流程是一样的,有没有一种办法,让他们通过一个代理类来实现呢? 这就需要用到动态代理技术了。


动态代理


相比于静态代理来说,动态代理更加灵活

我们不需要针对每个目标对象单独创建一个代理对象,而是把这个创建代理对象的工作推迟到程序运行时由 JVM 来实现。也就是说动态代理在程序运行时,根据需要动态创建生成。

比如房屋中介,我不需要提前预测都有哪些业务,而是业务来了我再根据情况创建。


Java 也对动态代理进行了实现,并给我们提供了一些 API,常见的实现方式有两种:

  1. JDK 动态代理。
  2. CGLIB 动态代理。

动态代理在我们日常开发中使用的相对较少,但是在框架中几乎是必用的一门技术。

学会了动态代理之后,对于我们理解和学习各种框架的原理也非常有帮助:

https://xiaolllei.blog.csdn.net/article/details/147427226?spm=1011.2415.3001.5331


在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/wzjs/58549.html

相关文章:

  • 珠宝购物网站的建设sem竞价托管公司
  • 怎样建设自己的物流信息网站网络营销软件推广
  • 深圳网站设计师百度收录申请
  • python做的网站有什么漏洞百度站长收录入口
  • 网天下信息技术有限公司网站太原最新情况
  • 网站制作如何做网络推广团队
  • 网站怎么做sem优化seo是什么seo怎么做
  • 个人资料网站怎么做收录查询工具
  • 心理健康网站建设方案360seo关键词优化
  • 济南哪有做网站的营销推广的主要方法
  • 专业做pe的网站石家庄seo关键词排名
  • mac怎么做网站设计seo网站分析
  • 做类似3d溜溜的网站网络推广包括哪些
  • 大陆手机如何安装台湾app免费seo课程
  • 苹果手机可以看的网站大全西安seo排名
  • 网站集约化建设通知建设网站前的市场分析
  • 低价网站建设资讯seo工程师是什么职业
  • 韩国儿童才艺网站建设模板整站排名服务
  • 自己的网站怎么做优化鸡西seo
  • 武威市网站建设怎么注册一个自己的网址
  • 国产手机做系统下载网站河南最近的热搜事件
  • 长沙seo网站建设袁飞最好网络软文营销案例3篇
  • 网站举报在哪举报seo排名如何优化
  • 那个网站做服装批发鹤壁seo
  • 购物网页模板上海seo公司排名榜
  • 自己个人网站后台怎么做crm系统
  • 网站建设sutengseo外包公司哪家好
  • 麦考林网上购物商城汕头seo推广
  • 网站升级维护中页面网店代运营需要多少钱
  • 做婚姻网站流程中国制造网网站类型