动态***-通俗易懂篇

前言:编故事理解动态***

很小的时候,小明(调用者)要去找小红同学(真实对象),但小明不能直接找到小红同学,要通过小红的家人(***对象)才能联系到她。
怎么理解这个动态呢?
有一天,小明要去见小红,小明来到小红家门口,出来开门的可能是小红的爸爸或妈妈,甚至可能碰到小红的爷爷奶奶(这个***对象是动态的)。 比如,出来给小明开门的是小红的爸爸,小红爸爸要首先确认小明的身份,才能同意小明上楼找小红。那么确认小明身份这个过程相当于AOP中的前置通知。确认过身份,同意小明上楼找小红了,小明见到了小红,问到了自己想要问的问题。之后,小红的妈妈要留小明在家一起吃午饭,这相当于后置通知


动态***,由两个关键字组成,一是动态,二是***。先来说说***,***涉及到***模式,***的本质就是***模式。

1. ***模式

***模式由三要素,俩动作组成。

三要素:

  1. 接口(定义了服务)
  2. 真实对象(继承接口,提供真正的服务。不能直接访问真实对象,只能通过***对象去访问)
  3. ***对象(包含真实对象,从而操作真实对象)。

俩动作:

  1. 真实对象和***对象要实现共同的接口。
  2. ***对象包含真实对象。

***对象中有静态的,也有动态的。

2.动态***

动态***,***的本质就是***模式,其中的动态我认为指的是不确定生成哪个***对象。

在java中,动态***类包含InvocationHandler(增强器)和Proxy(调度器)

理解InvocationHandler:

为什么要增加器呢,该增强器是***对象对真实对象的增强。比如对真实对象某些方法的前后分别做某些事件以增强真实对象的内容。

举个例子,乘客进入地铁,但进入地铁站前要检查体温,进入地铁站之后要过安检,最后才能进入地铁。

理解Proxy:

当你访问的时候,总会调度一个***对象服务调用者,调度器是专门调度***对象服务调用者的。

在java中,就是通过实现InvocationHandler,重写覆盖invoke方法进行增强业务,该方法中的method.invoke(真实对象,方法参数)就是真实对象的方法调用本身,
而***对象的生成是由Proxy.newProxyInstance()方法。


3. 理解来源

***模式理解图

java的动态***包含Proxy和InvocationHandler

学习来源及链接:
https://www.bilibili.com/video/BV1Dt41187wj?from=search&seid=6290600221112243542

全部评论

相关推荐

03-16 11:07
南开大学 Java
牛马人的牛马人生:快手卡实习经历的
点赞 评论 收藏
分享
02-26 09:15
已编辑
蚌埠学院 golang
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# AI面会问哪些问题? #
25023次浏览 493人参与
# 中国电信笔试 #
31125次浏览 283人参与
# 厦门银行科技岗值不值得投 #
7520次浏览 186人参与
# 你的实习产出是真实的还是包装的? #
18885次浏览 330人参与
# 如果秋招能重来,我会____ #
96712次浏览 500人参与
# 春招至今,你的战绩如何? #
60246次浏览 547人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
14204次浏览 209人参与
# i人适合做什么工作 #
36936次浏览 124人参与
# 我是面试官,请用一句话让我破防 #
79532次浏览 219人参与
# 哪些公司真双非友好? #
69228次浏览 287人参与
# 金三银四,你的春招进行到哪个阶段了? #
21575次浏览 277人参与
# 找AI工作可以去哪些公司? #
7754次浏览 189人参与
# 从事AI岗需要掌握哪些技术栈? #
7768次浏览 252人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
339975次浏览 2165人参与
# 面试尴尬现场 #
220783次浏览 861人参与
# 五一之后,实习真的很难找吗? #
102811次浏览 584人参与
# 你做过最难的笔试是哪家公司 #
30395次浏览 193人参与
# 你小时候最想从事什么职业 #
159845次浏览 2072人参与
# 应届生第一份工资要多少合适 #
20491次浏览 84人参与
# 阿里笔试 #
176558次浏览 1302人参与
# 一张图晒出你司的标语 #
3846次浏览 72人参与
# 面试被问期望薪资时该如何回答 #
382478次浏览 2163人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务