请教一下 Java 大佬,大量使用反射进行回调,是什么套路?

2020-04-30 11:15:08 +08:00
 NoKey

新手接触的比较晚

目前各个模块,服务之间,都是使用消息队列进行沟通

最近接触了一个服务

需要通知对方或者给对方消息的时候,是调用对方提前注册的一个方法

实际就是用反射去执行方法

在这个服务里大量使用

请教一下大佬,这个做法有啥专有名词不,或者是啥框架,啥模块?

谢谢。

3864 次点击
所在节点    程序员
17 条回复
yeqizhang
2020-04-30 11:19:50 +08:00
回调?不是远程方法调用?
magicdu
2020-04-30 11:20:44 +08:00
RPC
freebird1994
2020-04-30 11:23:27 +08:00
远程服务调用
yeqizhang
2020-04-30 11:34:09 +08:00
过来瞎扯一下吧,我觉得楼主接触的东西还是不错的。
我 15 年自学的,看的培训机构的 java 基础以及框架。后面工作了两年多,都是传统行业管理系统,部门里技术落后,对外提供接口还是 web service xml 的形式,页面开发占用了大半时间,对于技术提升很少,当然自己也是温水煮青蛙,也是有不知道从何去提高的原因。
18 年决定辞职,然后学 dubbo,才了解了分布式,才知道 rpc 是什么。
最近半年找工作也是在查漏补缺后端技术栈。
哎……非科班如果之前接触的项目不好真的影响挺大的,当然我遇到的还不是最坑的。
luckyrayyy
2020-04-30 11:39:06 +08:00
RPC\RMI 了解一下
wysnylc
2020-04-30 11:41:05 +08:00
RPC
然后不建议使用 RPC,换成 RESTFUL 更好
w99w
2020-04-30 12:32:42 +08:00
解耦用的。平台方提供协议规范,使用者注册实现后的 service,对平台方内部来说,无额外业务逻辑。
对于使用方,使用规范一目了然。
w99w
2020-04-30 12:33:37 +08:00
之前在一个大厂做 IM,都是这么玩的
w99w
2020-04-30 12:36:02 +08:00
专有名词,
思想可以说是 面向协议编程。
ic2y
2020-04-30 12:37:42 +08:00
@NoKey 叫动态代理。先声明一个接口,动态代理这个接口 [内部路由请求到具体实例的方法] ,通过这个接口实现外部的 Http 或者 TCP 请求 到 本地的方法之间的桥接。
yanglovejing
2020-04-30 13:48:00 +08:00
那个地方应该统一路由的地方
NoKey
2020-04-30 14:04:38 +08:00
@w99w 恩,大概就是你的说的这个感觉。习惯了用消息队列等中间件来解藕,感觉这种做法有点麻烦
liyanggyang
2020-04-30 14:05:38 +08:00
观察者模式
ddoocc
2020-04-30 14:13:12 +08:00
计算机的各种思路来来去去就那几种,换个应用场景就换个名字。
w99w
2020-04-30 15:05:21 +08:00
@NoKey
消息队列这种最优雅
不过不同模块的消息队列的实现方式都不一定相同
所以开放点还是不能太复杂,反射+协议
简单粗暴,正确有效
gscoder
2020-04-30 15:40:04 +08:00
消息队列太开放,强制性不高。rpc 感觉还是兼有解耦和标准化的好处
xuanbg
2020-04-30 16:18:58 +08:00
写服务回调用得少,我写客户端就大量使用回调。原因很简单,因为 model->viewModel 是单向的,所以 viewModel 必须通过反射和回调才能调用 model 里面的方法,把 view 中的交互事件反馈回去。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/667540

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX