java 代理模式

代理模式听起来特别唬人,如果你不知道的话。

几个月前,我去面试。面试官出来。(我一看,哇,这人是程序员?吊儿郎当的样子)

然后他就开始问我一些问题。让我一直记住的一个问题是:静态代理模式与装饰模式有什么区别?

我当然没有回答上来了。我TM根本不知道代理模式要怎么弄,只是知道有这么个东西。


以上是前言。不过实话说,代理模式是我一直想了解但是一直没有了解的东西。然后在我脑中就有一个印象:这玩意很难、不好懂,懂的人都是高手。


不过,今天,我大致知道了什么是 java 代理模式。

背景介绍

比如有人请歌星唱歌,对于歌星本人而言,只需要做一件事情,就是唱。 但是对于其工作室,需要先帮忙订机票,然后让歌星去唱歌,之后,工作室还有做一些收尾的工作,比如,接广告,接采访安排等 ~~实际工作室的内容肯定这多~~

代理模式的套路是,代理类与实际类实现共同的抽象角色,然后对外,一致是抽象角色。然后内部分工。

比如除了唱歌之外的事情,是代理搞定,唱歌是本人搞定。

代理模式中一共有4个角色:

  1. 客户角色。作为调用者出现的(对应这里的是 {@link Client})
  2. 抽象业务角色,作为对接客户的角色出现的 (对应这里的是 {@link Star})
  3. 真实业务角色,作为核心逻辑的真实角色出现的 (对应这里的是 {@link RealStar})
  4. 代理业务角色,如果是动态代理,没有一个具体的类(jdk 自动生成代理类);如果是静态代理,有对应的类(对应这里的是 {@link ProxyStar})

何谓动态代理:即动态生成代理类!

示例代码

更详细的讲解

大牛们总是说,不懂的要看书!不要去看乱七八糟的视频。看视频说明你没有自学能力。

我个人的感觉是,书还是视频都是知识分享的一种媒介,几乎没有什么区别。(我内心里面,也一度认为书比视频要好。)但是,最近我发现,其实无关乎媒介,真的的判断标准还是在于内容。

如果一本书能将知识点讲解清楚,并且通俗易懂,(一般而言,如果是讲清楚了,都是通俗易懂的,讲的不清不楚的,就不会通俗易懂)那就是一本好书;反之,则是一本垃圾。

视频同理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值